mybatis 中我的 insert sql语句语法都写错了,但不报错只是存的值为空。有懂的看看

今天发现一个奇怪的问题,就是mybatis 中我的sql语句是这么写的
insert into cs_content(csId,content,time,name,channel) values(csId=#{csId},content=#{content},time=#{time},name=#{name},channel=#{channel})
_后来发现 是我的 values后(csid=#{csid}.....) 每个都多了个xx=。 应该是 (#{csid},......)
但很奇怪的是他不报错 我的数据库中存入的除了自增的id全为null,有大神懂这个是什么原因造成。。改好后,就正常,语法错误一般会报错的,问问有人知道不。。

15个回答

图片说明
自己试一下

mybatis sql如果报错项目会启动不了,直接启动报错,添加为空可能是你前台数据没有获取到,你可以加个断点走一下,看看你前端的数据是否获取到了

qq_29563343
舜坨 是 这里是这么写才是正确的 values(#{csid}) 我写成了 values(csid=#{csid}), 但他不报错,只是存的值为空,我就觉得很奇怪
一年多之前 回复

是 这里是这么写才是正确的 values(#{csid}) 我写成了 values(csid=#{csid}), 但他不报错,只是存的值为空

qq_29563343
舜坨 回复wanglikun132: 原理没有搞懂,大概知道是因为他只判别了前面的csid这个,没有里后面的#{csid} ,我觉得这些设定有点问题,应该报错才好
一年多之前 回复
wanglikun132
wanglikun132 问题解决了吗?我一般写添加都是直接复制自动生成的进行修改,这样就不会有一些奇葩的错误了
一年多之前 回复

应该是把csid=#{csid}整体当成前台参数,但是前台没有这个参数所以为null

mybatis 执行的SQL语句打印出来看下呗

mybatis中执行时的断点提示是什么,或者你本来的文件里就是空的。

你的参数传的时候没有指定,两种方法指定参数,使用@Param放在接口方法参数前面区分参数,或者在sql语句中列名=#{param第几个传入参数}

是不是没有注入,遇到过类似的问题,就是因为mapper没有注入导致的

你这个mybatis当做整体参数了,parameterType肯定找不到,所以null了

传递过来的实体类你确定是有值的吗?应该从头到尾都排查一遍,前端是否传递过来值,然后传递给mybatis是否有值传递过来

共15条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
insert语句语法报错
下边是我的插入语句rnSqlConnection conNorthwind;rnstring strInsert;rnSqlCommand cmdInsert;rnconNorthwind = new SqlConnection( @"Server=localhost;uid=shiqi;pwd=sqxh040407;database=new" );rntrInsert = "Insert user ( username) Values ('Milk')";rncmdInsert = new SqlCommand( strInsert, conNorthwind );rnconNorthwind.Open();rncmdInsert.ExecuteNonQuery();rnconNorthwind.Close();rnResponse.Write("New Product Added!");rn报错提示:rn在关键字 'user' 附近有语法错误rn==============rn请问语法怎么错了rnusername类型为char
懂sql语句的都过来看看!!!
怎样删除下面语句查出的重复记录.要求保留重复记录的最后一条!!!rnSELECT DISTINCT rn t1.KH_NO, t1.KH_NAME, t1.KH_MAIL, t1.KH_DIQUrnFROM khinfo t1 INNER JOINrn khinfo t2 ON t1.KH_MAIL = t2.KH_MAIL AND t1.KH_NO <> t2.KH_NO
mybatis 的 insert 语句怎么写
![图片说明](https://img-ask.csdn.net/upload/201703/13/1489374480_793469.png)为rn![图片说明](https://img-ask.csdn.net/upload/201703/13/1489374610_386788.png)rn什么不能插入数据
查询值为空的语句怎么写?
用了ISNULL,就会对字段赋新值吧。
帮忙看看sql语句,那里写错了。
如题:现有两个表member和consultant,需要更新member表中的内容,rn两个表的关系是id是相同的。rnrnUPDATE memberrnSET member.[group] = 4rnWHERE (member.id = consultant.id) AND (consultant.status = 2)rnrn麻烦看看,我哪里写错了rnrn谢谢,在线等rn
mybatis insert 插入字段为空解决办法
需求:当插入时,部分字段参数为空或使用实体类插入时部分属性无值,直接插入会报空指针 解决办法: &amp;lt;settings&amp;gt; &amp;lt;!--插入为空时插入空值避免报空指针--&amp;gt; &amp;lt;setting name=&quot;jdbcTypeForNull&quot; value=&quot;NULL&quot; /&amp;gt; &amp;lt;/settings&amp;gt; mybatis配置文件加入setting即可解决空指针 ...
查询字段值为空的SQL语句
如题:rn例如:有一个字段P,里面有些记录为空,我现在要找出为空的记录。rnrnSQL语句怎么写?
出错了,INSERT INTO报错
"Insert into BillMenuItem (BillMenuItemID,MenuItemCode,OrderQty,ChargeQty,MenuItemPrice,MenuItemStatus,OrderTime,BillNo,Remark,Dept2Code,MenuSuiteNo,WaiterID,Standard,OriginOrderPrice,MenuItemCName,TableNo) Values ('" + billMenuItemId + "','" + menuItemCode + "','" + orderQyt + "','" + orderQyt + "','" + menuItemPrice + "','" + menuItemStatus + "','" + orderTime + "', '"+ billno +", remark +'"+ guestNeed + "','" + dept2 + "','" + menuSuiteNo + "','" + waiter + "','" + standard + "','" + menuItemPrice + "','" + menuItemCName + "','" + tableno + "')"rn执行时总是报:rnERROR [42000] [Sybase][ODBC Driver]Syntax error or access violationrn看不出有什么问题,rn请教
SSM中mybatis模糊查询数据库有值,控制台为空
使用Mybatis带参查询时,如果没有构建实体类,select中的resultType为hashmap,在controller类里面拿到值之后,如果传进去的值为中文,必须进行转码 username = new String(username.getBytes(“ISO-8859-1”), “UTF-8”); ...
OleDbDataAdpter的update报错:insert 语句语法出错
sql = "select * from line order by id";rnmyCommand = new OleDbCommand(sql,conn); rnmyAd.SelectCommand = myCommand;rnlineCb = new OleDbCommandBuilder(myAd);rnmyAd.Fill(dataSet1,"line"); rnsql = lineCb.GetInsertCommand().CommandText.ToString();rndataGrid1.SetDataBinding(dataSet1,"line");rnrn最后在执行myAd.update(dataSet1,"line")时说insert 语句语法出错(在update(DataRows[],MappingName)中)rnrn请问这一般是什么原因啊??我在程序中其他地方也用到一样的语句,但是就没有任何问题
mybatis insert 时 null值的报错问题
在用mybatis的时候,特别是在进行update,insert或者delete的时候,如果有的值是null的话,会报错。原因是没有为参数指定jdbcType,所以当值是null的时候,mybatis无法进行转换,解决方法就是在sql的xml文件中,每个参数后面都跟上它的jdbcType。   &amp;lt;insert id=&quot;insertSomething&quot; parameterType=&quot;x...
为什么用SQL语句执行Insert语句报错?!
我用VS2005写了一段程序,作用是用SQL语句向ACCESS数据库中插入一条数据rnINSERT INTO(User,Password) VALUES('Admin','12345')rn在VB中执行时出现错误“Insert Into语法错误”,但是在Access中的SQL查询中执行时是正确的,请问到底是什么错误?
SQL SERVER中insert语句怎么写
nsert into 表 values(值1,值2....)rn里面数据有些不知道,所以可能要用到占位。(我这是在SQL SERVER触发器里写的)rn主要类型有int,smallint,varchar,datetime。就是添加的时候不知道值。求教如何写rn字段都设置不能为空rn字段举例:ID,NAME,DATETIME
sql的insert语法在c#中
比方rninsert(sss,cc,ss,cc) values(怎么调用变量,写法怎么写呢)rn能有完整的插入例子最好
INSERT INTO 语句语法问题
with form1.ADOQuery2 dorn beginrn close;rn SQL.Clear;rn sql.Add('insert into materials(a,b,c,d,e,');rn Sql.add('f,g,h,i,j,');rn Sql.add('k,l,m,n,o,p,q)');rn sql.add('values(:a,:b,:c,:d,:e,');rn sql.add(':f,:g,:h,:i,:j,');rn sql.add(':k,:l,:m,:n,:o,:p,:q)');rn parameters.ParamByName('a').value:=trim(edit2.Text);rn parameters.ParamByName('b').value:=trim(edit1.Text);rn parameters.ParamByName('c').value:=trim(edit3.Text);rn parameters.ParamByName('d').value:=trim(edit4.Text);rn parameters.ParamByName('e').value:=trim(edit5.Text);rn parameters.ParamByName('f').value:=trim(edit6.Text);rn parameters.ParamByName('g').value:=trim(edit7.Text);rn parameters.ParamByName('h').value:=trim(edit8.Text);rn parameters.ParamByName('i').value:=trim(edit9.Text);rn parameters.ParamByName('j').value:=trim(edit10.Text);rn parameters.ParamByName('k').value:=trim(edit11.Text);rn parameters.ParamByName('l').value:='';rn parameters.ParamByName('m').value:='';rn parameters.ParamByName('n').value:='';rn parameters.ParamByName('o').value:='';rn parameters.ParamByName('p').value:='';rn parameters.ParamByName('q').value:='';rn execsql;rn rn 我用的是access数据库rn 上述代码中a到q都是数据表materials的字段(在我的原程序中字段都是汉字,这里用字母代替了,由于字段比较多,我在程序中用分行显示),其中a、b数据类型在access数据表中显示的是“文本”,其他的都是“数字”,我的界面中edit1,edit2输入的都是汉字加字母组合的字符串,而其他的edit都输入的是数字。l到m在数据表中是空值,界面中也不输入具体值。rn rn 但我运行时,输入相关内容后总是显示“insert into 语句的语法错误”,不知道这是哪里出错了,请教各位高人,谢谢!rn
sql 语句 看看哪儿错了
insert into member(M_ID,M_pwd,M_email) values('luias','355129','') where 'luias' not in (select M_ID from member)
sql语句 看看哪儿错了
insert into member(M_ID,M_pwd,M_email) values('liu','123456','') where 'liu' not in (select M_ID from member)
看看是不是SQL写错了
procedure TForm1.FormShow(Sender: TObject);rnbeginrn adoquery1.Close ;rn adoquery1.SQL.Clear ;rn adoquery1.SQL.Text :='select [id],proid,fid,banci,BigClassID,SmallClassID,cast(fxbm as varchar(500)) 'rn +'from info where cast(fxbm as varchar(500))<>cast(hsbm as varchar(500)) 'rn +'and cast(hsbm as varchar(500)) is not null order by proid,fid ';rn adoquery1.Open ;rnend;rn大家帮我看看这段代码错在哪里。是这样的,delphi连接access数据库的info表,表里的hsbm是备注字段类型的,如果select hsbm from info的结果是(memo),没有任何数据,但实际上是有数据的,现在我要进行比较,所以我要强制转换成varchar类型,但是出错了,大家帮我改一下。
MyBatis中编写sql语句小于号报错
场景 在编写Mybatis的xml文件时使用&gt;可以但是使用&lt;报错。 解决 1.调换位置 比如a &lt; b 改为b &gt; a 2.使用代替符号
insert into语句的语法错误问题!
SQLite的 TEXT类型 是不是 可以直接插入 string类型? 仿照下面的例子后! 发现提示 insert into语句的语法错误rn我的 string sql = "insert into YTC(HC)values(@Half)";rn我确实建立了 YTC这个表 并且也有 HC这列 这列的类型 我建的时候选的TEXT类型 rnrnrnpublic void InsertLevel1()rn rn string sql = "insert into category(id,parentId,name,displayOrder)values(@id,@parentId,@name,@displayOrder)";rn using (SQLiteConnection connection = new SQLiteConnection("Data Source=D:\\category.db"))rn rn connection.Open();rn using (DbTransaction transaction = connection.BeginTransaction())rn rn using (SQLiteCommand command = new SQLiteCommand(sql, connection))rn rn command.Parameters.Add(new SQLiteParameter("@id", DbType.Int32));rn command.Parameters.Add(new SQLiteParameter("@parentId", DbType.Int32));rn command.Parameters.Add(new SQLiteParameter("@name", DbType.String));rn command.Parameters.Add(new SQLiteParameter("@displayOrder", DbType.Byte));rn for (int i = 1; i <= Level1; i++)rn rn command.Parameters["@id"].Value = i;rn command.Parameters["@parentId"].Value = 0;rn command.Parameters["@name"].Value = string.Format("Level_0_Name_1", i, i);rn command.Parameters["@displayOrder"].Value = random.Next(1, 256);rn command.ExecuteNonQuery();rn rn rn transaction.Commit();rn rn rn
insert语句的语法
exec="insert into one(number)values("+number+")"rnnumber是数值型.上面的语法说有错.错在哪?我怎么也检察不出来.谢谢.在线等..
数据库中的日期值怎样用SQL语句置为空
我有一ACCESSS数据库,需要将其中的一日期字段,用SQL语句从有值状态修改为空值.
vb中INSERT INTO语句报错
[code=vb]Private Sub Command1_Click()rn Dim name AsADODB.Connectionrn Set name = NewADODB.Connectionrn cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;#Source=C:\Users\Administrator\Desktop\整理家\Database3.mdb;"rn name.execut "INSERT INTO 生活 VALUES ('001','张三','风','p')"rn name.Closern Set name = NothingrnEnd Subrn[/code]rn有大神能帮忙吗
求救,sql语句写错了。
有一张表解leavesrecords 里面有ID,workid, leavedate,remark,leavetype 四个字段,现在要查workid和leavedate 字段相同重复的记录。rnselect * from leavesrecords arnrn[color=#FF6600]where (a.workid,a.leavedate)[/color] 这边说有语法错误。rnrn in (select workId,leavedate from leavesrecords group by workId,leavedate having count(*) > 1)
这个字段为空写错了?
我用过isnull(car_fee_end,0)和isnull(car_fee_end)都提示我错了。rnrn[code=C#] string fee_sql_card = "select * from car_park_fee where car_fee_nums='" + fee_card_id + "' and datediff(d,car_fee_start,getdate())=0 and isnull(car_fee_end,0)";[/code]rnrn
Mybatis的association查询值为空
目前试过网上的各种办法都不能实现嵌套查询时值为空的问题。 解决办法: 保证Java实体中字段大小写和数据库中字段完全一样,不要使用驼峰,那是没用的(至少我测试是没有查出来值的)。 ...
老是说insert语句错了,帮帮我看看哪里错了
sqlstr="insert into users(name,age,address,telephone,login,password,notes,power)values ('"&request("name")&"',"&request("age")&",'"&request("address")&"','"&request("telephone")&"','"&request("login")&"','"&request("password")&"','"&request("notes")&"',"&request("power")&")"rnrnrn请问哪里错了呀?
看看这个sql语句,有什么问题?我都急死了!!!!!
set rs=server.createobject("adodb.command")rnset rs.activeconnection=connrnsql="insert into message (from,toto,dateandtime,messbody,title) values ('"&from&"','"&toto&"','"&dateandtime&"','"&messbody&"','"&title&"')"rnrs.commandtext=sqlrnrs.execute
为什么说我insert into语句错了?
为什么会这样?代码如下: rn<%@ Page Language="VB" Debug="True"%> rn<%@ import Namespace="System.Data.OleDb" %> rn<%@ import Namespace="System.Data" %> rn
我的insert into语句到底哪里错了
conn.execute "insert into UserInfo (LoginID, Name, Password, EmailAddress,Department,Position,Birthday,HomePhone,QQ,HomeAddress,InternalPhone,MobilePhone) values ('"& TheLoginID &"', '" & TheName &"','"& ThePassword &"','"& TheEmailAddress &"','"& TheDepartment &"','"& ThePosition &"','"& TheBirthday &"','"& TheHomePhone &"','" & TheQQ &"','" & TheHomeAddress &"','" & TheInternalPhone &"', '"& TheMobilePhone & "')"rnrn在线等
sql语句在insert时 有‘ ’
Parameter index out of range (1 > number of parameters, which is 0).
mybatis中写sql语句的注意事项--instr
instr:            SELECT DEPID,DEPNAME,EMPLOYEEID,EMPLOYEENAME FROM FW_EMPLOYEE,FW_DEPARTMENT WHERE FW_EMPLOYEE.WORKDEPID=FW_DEPARTMENT.DEPID AND INSTR(#{viewPersonID},EMPLOYEEID)&gt;0     not i
我的SQL语句报错!
/对数据源执行delete激发srn protected void gvOrderInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)rn rn string sqlstr = "delete from tb_OrderInfo where OrderID='"+gvOrderInfo.DataKeys[e.RowIndex].Value+"'"; ---> 这儿报错rn sqloperate.DataCom(sqlstr);rn Response.Redirect("OrderManage.aspx");rn rnrn错误为:用户代码未处理ArgumentOutOfRangeExceptionrnrn索引超出范围。必须为非负值并小于集合大小。rn参数名: indexrnrnrnrn在我的用户名为三个汉字的时候点击删除就报错!但是用户名为两个汉字的时候就不报错!请问我该怎么修改呀!
SQl insert into 语法写法。。
我现在有一个表了。。有三个字段吧。。a.a1,a.a2,a.a3 然后,,有我另一表b取其一字段b.b1然后b.b1肯定会取出很多数据,这个数据要插入到a.a1里,,a.a2和a.a3都取定值,,如1.。
SQL INSERT 语法问题
Insert into table(ID,Name) values ('1','2');rnInsert into table(ID,Name) values ('2','2');rnInsert into table(ID,Name) values ('3','2');rnInsert into table(ID,Name) values ('4','2');rnrn能不能改为类似MysqlrnInsert into table(ID,Name) values ('1','2'),('2','2'),('3','2'),('4','2');rnrn谢谢
insert 语句 value值为数组 怎么写呢
[code=Java]rninsert into bjrk(rkje,xsje,ck,rktime,cartype,)values('"+rkje[i]+"','"+xsje[i]+"','"+ck[i]+"','"+rktime[i]+"','"+cartype[i]+"')"); rn[/code]rn数组那部分怎么写呢?
insert into 我哪里错了?
INSERT INTO worker(TeamName, WorkerID, WorkerName, WorkerType)rnVALUES ((SELECT teamID FROM list_banzu WHERE teamName = 'MK60_A'), '1111111', '111111',rn (SELECT id FROM list_type WHERE workType = '班组长'))rnrnselect出的值肯定都唯一的 , 帮忙看看我哪里错了
请看看:我的sql语句怎么写
我的sql语句怎么写啊。rn窗体上有text1,text2,text3 和 command1 rn点command1,要搜索符合text1,text2,text3的要求rn数据库中有表“product”rn分别把 产品的名称,型号,数量在三个文本框中表示出来。rn“select----”rn怎么写啊
java代码中写insert语句
statement.executeQuery( "INSERT INTO 工厂1 VALUES ('小红', '工人')");rn怎样实现以上功能rnrnString departmentname = departmentField.getText();//工厂1rnString name = nameField.getText();//小红rnString positionLabelname = positionField.getText();//工人rnrnstatement.executeQuery(???????)
字符型字段,值为空,如何用SQL语句判断此字段值为空?
字符型字段,值为空,如何用SQL语句判断此字段值为空?
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法