建表字段使用了关键字,插入时sql语句报错
错误描述
设计的表中有个字段为describe,与SQL中的关键字相同,于是在mybatiscodehelper自动生成的sql语句中没有对其做针对处理的时候
<update id="updateById">
update activity_event
<set>
<if test="updated.id != null">
id = #{updated.id,jdbcType=BIGINT},
</if>
<if test="updated.title != null">
title = #{updated.title,jdbcType=VARCHAR},
</if>
<if test="updated.pic != null">
pic = #{updated.pic,jdbcType=VARCHAR},
</if>
<if test="updated.describe != null">
describe = #{updated.describe,jdbcType=VARCHAR},
</if>
<if test="updated.joinNums != null">
join_nums = #{updated.joinNums,jdbcType=INTEGER},
</if>
<if test="updated.app != null">
app = #{updated.app,jdbcType=INTEGER},
</if>
<if test="updated.startTime != null">
start_time = #{updated.startTime,jdbcType=DATE},
</if>
<if test="updated.endTime != null">
end_time = #{updated.endTime,jdbcType=DATE},
</if>
<if test="updated.createTime != null">
create_time = #{updated.createTime,jdbcType=TIMESTAMP},
</if>
<if test="updated.updateTime != null">
update_time = #{updated.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updated.isEnable != null">
is_enable = #{updated.isEnable,jdbcType=INTEGER},
</if>
</set>
where id=#{id,jdbcType=BIGINT}
</update>
就会报错,错误如下
### The error may exist in file [D:codeactivitycloud-service-activitytargetclassesmapperActivityEventMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: update activity_event set id = ?, title = ?, pic = ?, describe = ?, join_nums = ?, app = ?, start_time = ?, end_time = ?, create_time = ?, update_time = ?, is_enable = ? where id=?
### 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 'describe = 'asdfasdf',
join_nums = 1,
' at line 11
解决方法
在与关键字一样的字段上加上` `。