开发者社区> 问答> 正文

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

展开
收起
爱吃鱼的程序员 2020-06-23 13:46:35 833 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB


    自己试一下

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

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

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

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

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

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

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

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

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

    2020-06-23 13:46:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
SQL Server 2017 立即下载
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载