mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题
Posted 社会大哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题相关的知识,希望对你有一定的参考价值。
可能你插入字段为关键字时报如下错误,且字段名不适合改变
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
一.mybatis中
方案一:如果是在xml文件中,插入语句时可以加上` `,例如
<!--批量新增--> <insert id="addBatch" useGeneratedKeys="true" keyProperty="id" parameterType="com.pct.dotware.pams.entity.EmpStsDetail"> insert into emp_sts_detail ( `emp_name`, `emp_id`, `item_id`, `item_name`, `price_id`, `emp_sts`, `cus_id`, `cus_name`, `cus_rank`, `start_date`, `end_date`, `update_date`, `remark` ) values <foreach item="item" collection="list" open="(" separator="),(" close=")"> #{item.empName}, #{item.empId}, #{item.itemId}, #{item.itemName}, #{item.priceId}, #{item.empSts}, #{item.cusId}, #{item.cusName}, #{item.cusRank}, #{item.startDate}, #{item.endDate}, #{item.updateDate}, #{item.remark} </foreach> </insert>
方案二:在实体类中加入注解
@Column(name = "`left`") private Double left;
二.mybatisPlus中
方案一.加@TableField
注解,给上别名加上反单引号,比如
@TableField("`month`") private String month;
以上是关于mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题的主要内容,如果未能解决你的问题,请参考以下文章