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,有大神懂这个是什么原因造成。。改好后,就正常,语法错误一般会报错的,问问有人知道不。。

图片说明
自己试一下

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

parameterType=""这个属性指定好了吗,传入参数了吗。重这些地方着手看看吧。

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

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

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

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

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

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

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

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

刚刚没有搞懂题目,抱歉哈

这个写法 insert into cs_content(csId,content,time,name,channel) values(csId=#{csId},content=#{content},time=#{time},name=#{name},channel=#{channel})

不应该是 insert into cs_content(csId,content,time,name,channel) values(#{csId}, #{content}, #{time}, #{name},#{channel}) 么?

图片说明

没有问题哈, 把values中整体作为参数哈, 但是parameterType肯定找不到哈。