今天发现一个奇怪的问题,就是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,有大神懂这个是什么原因造成。。改好后,就正常,语法错误一般会报错的,问问有人知道不。。
自己试一下
mybatissql如果报错项目会启动不了,直接启动报错,添加为空可能是你前台数据没有获取到,你可以加个断点走一下,看看你前端的数据是否获取到了
是这里是这么写才是正确的values(#{csid})我写成了values(csid=#{csid}),但他不报错,只是存的值为空
应该是把csid=#{csid}整体当成前台参数,但是前台没有这个参数所以为null
mybatis执行的SQL语句打印出来看下呗
mybatis中执行时的断点提示是什么,或者你本来的文件里就是空的。
你的参数传的时候没有指定,两种方法指定参数,使用@Param放在接口方法参数前面区分参数,或者在sql语句中列名=#{param第几个传入参数}
是不是没有注入,遇到过类似的问题,就是因为mapper没有注入导致的
你这个mybatis当做整体参数了,parameterType肯定找不到,所以null了
传递过来的实体类你确定是有值的吗?应该从头到尾都排查一遍,前端是否传递过来值,然后传递给mybatis是否有值传递过来
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。