mybatis的报错总结_____2Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an err
Posted xbfchder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的报错总结_____2Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an err相关的知识,希望对你有一定的参考价值。
在编写动态sql时 trim的属性写错了,如下图:
错误示范:
(接口的xml配置文件中:)
1 <update id="modifyBill" parameterType="Bill"> 2 update smbms_bill 3 <trim suffix="set" prefixOverrides="," prefix="where id=#id"> 4 <if test="billCode!=null">billCode=#billCode,</if> 5 <if test="productName!=null">productName=#productName,</if> 6 <if test="productDesc!=null">productDesc=#productDesc</if> 7 </trim> 8 </update>
报错日志:
Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near ‘where id=3 billCode=‘33333‘,
//可以看到日志中打印出来的sql语句也是有错的,如下:
### SQL: update smbms_bill where id=? billCode=?, productName=?, productDesc=? set
正确的示范:
接口的xml配置文件中:
<!--最后一个没有逗号~~~~~--> <update id="modifyBill" parameterType="Bill"> update smbms_bill <trim prefix="set" prefixOverrides="," suffix="where id=#id"> <if test="billCode!=null">billCode=#billCode,</if> <if test="productName!=null">productName=#productName,</if> <if test="productDesc!=null">productDesc=#productDesc</if> </trim> </update>
打印出来的sql语句:
[com.xbf.dao.bill.BillMapper.modifyBill]-==> Preparing: update smbms_bill set billCode=?, productName=?, productDesc=? where id=?
总结:(网上找的图,感觉说的很清晰!)
prefix:字首 eg:set
prefixOverrides:字首的替换 eg: ,
suffix:后缀 eg:where id=# id
以上是关于mybatis的报错总结_____2Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an err的主要内容,如果未能解决你的问题,请参考以下文章
Spring学习的报错____1.Type interface com.xbf.dao.UserDao is not known to the MapperRegistry.