Mybatis使用“<trim prefix="SET" suffixOverrides=",">”出现Cause: java.sql.SQLException:

原创 2016年06月02日 09:35:04

今天在使用Mybatis时出现错误:

### Error updating database.  Cause: java.sql.SQLException: MYSQL: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 'CHECKNOTPASSREASON='驾驶证未满一年以上;其他原因:qwe' 
		where OID' at line 3
### The error may involve com.zte.ums.ztev.database.dao.drivermgt.DriverMgtDao.modifyDriver-Inline
### The error occurred while setting parameters
### SQL: update BUS_DRIVER    SET CHECKTHROUGH=?    CHECKNOTPASSREASON=?    where OID = ?
### Cause: java.sql.SQLException: MYSQL: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 'CHECKNOTPASSREASON='驾驶证未满一年以上;其他原因:qwe' 
		where OID' at line 3

检查发现是因为:

<if test="driverLicenseScan !=null">DRIVERLICENSESCAN=#{driverLicenseScan},</if>
			<if test="address !=null">ADDRESS=#{address},</if>
			<if test="checkThrough !=null">CHECKTHROUGH=#{checkThrough}</if>
			<if test="checkNotPassReason !=null">CHECKNOTPASSREASON=#{checkNotPassReason}</if>
			<if test="userGrade !=null">USERGRADE=#{userGrade}</if>

中“#{checkThrough}”,“#{userGrade}”和“#{checkNotPassReason}”后面缺少逗号“,”

改为:

<if test="driverLicenseScan !=null">DRIVERLICENSESCAN=#{driverLicenseScan},</if>
			<if test="address !=null">ADDRESS=#{address},</if>
			<if test="checkThrough !=null">CHECKTHROUGH=#{checkThrough},</if>
			<if test="checkNotPassReason !=null">CHECKNOTPASSREASON=#{checkNotPassReason},</if>
			<if test="userGrade !=null">USERGRADE=#{userGrade},</if>
就好了!

相关文章推荐

Mybatis最入门---动态查询(where,trim,set)

[一步是咫尺,一步即天涯] 首先,请大家先回顾一下,我们前文在讲述时说至少有一个where 固定条件,并且在缺失固定条件是SQL的执行结果是0个符合条件的数据。可现实情况是,我们真的有时候无法确定输入...

Mybatis中运用小技巧(四)trim标签的使用

trim元素的主要功能是可以在自己包含的内容钱加上某些前缀,也可以在其后加上某写后缀,与之对应的属性是prefix和suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,...
  • death05
  • death05
  • 2016年11月09日 11:59
  • 6929

MyBatis动态SQL中trim标签的运用

MyBatis动态SQL中trim标签的使用   My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少。   事实上trim标签有点类似于replace效果。 ...
  • hk9024
  • hk9024
  • 2015年06月25日 17:10
  • 1017

MyBatis动态SQL之 set 和 trim标记的使用

和之前的where一样,set和trim也是智能标记  在之前的user.xml中添加 update id="updateUserSet" parameterType="User"> ...

mybatis中的<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>说明

1. prefix:在trim标签内sql语句加上前缀。 suffix:在trim标签内sql语句加上后缀。 suffixOverrides:指定去除多余的后缀内容,如:suffixOverri...

<trim>: prefix+prefixOverrides+suffix+suffixOverrides

ID = #{select_items,jdbcType=VARCHAR} or HOME_URL = #{select_items,jdbcType=VARCHAR} ...

mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

1. prefix:在trim标签内sql语句加上前缀。 suffix:在trim标签内sql语句加上后缀。 suffixOverrides:指定去除多余的后缀内容,如:suffixOverri...

mybatis中<where>标签、<set>标签、<trim>标签、<sql>标签、<foreach>标签的使用

mybatis where标签的使用 mybatis trim标签的使用   trim 属性   prefix:前缀   suffix:后缀   prefixOverrides:忽略第一个指定分隔符...

MyBatis动态SQL之 set 和 trim标记的使用

和之前的where一样,set和trim也是智能标记  在之前的user.xml中添加 ? 1 2 3 4 5 6 ...

MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用

动态SQL是MyBatis最强大的特性之一。用于实现动态SQL的主要元素如下: 1、if 2、choose、when、otherwise 3、trim、where、set 4、foreach代...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybatis使用“<trim prefix="SET" suffixOverrides=",">”出现Cause: java.sql.SQLException:
举报原因:
原因补充:

(最多只允许输入30个字)