jdbc mysql 关键字_mybatis/tk mybatis下实体字段是关键字/保留字,执行报错

在使用tk MyBatis时,实体类中字段为MySQL关键字'order'导致插入语句执行错误。错误信息提示SQL语法错误,解决办法是在字段上添加@Column注解并指定别名,例如`order`。对于不同数据库,关键字转义字符会有所不同,如MySQL使用反引号。此外,也可通过MyBatis配置文件设置开始和结束分隔符。
摘要由CSDN通过智能技术生成

实体如下:

importcom.fasterxml.jackson.annotation.JsonFormat;importcom.netmarch.web.bean.PagesStatic;importlombok.AllArgsConstructor;importlombok.Builder;importlombok.Data;importlombok.NoArgsConstructor;importorg.springframework.format.annotation.DateTimeFormat;importjavax.persistence.Column;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.Transient;importjava.time.LocalDateTime;

@Data

@NoArgsConstructor

@AllArgsConstructor

@Builder/***

* app图标*/@JsonFormatpublic classApiCertificate{

@Id

@GeneratedValue(generator= "JDBC")

@TransientprivateInteger id;privateString url;

@Column(name= "`order`")privateInteger order;privateInteger creatorId;

@DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")

@JsonFormat(pattern= "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")privateLocalDateTime createTime;

}

tk mybatis使用动态sql语句的insert方法报错:

### SQL: INSERT INTO api_certificate ( url,order,creator_id,create_time ) VALUES( ?,?,?,?)

### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versionfor the right syntax to use near 'order,creator_id,create_time ) VALUES( 'certificate/6c38dea0-3450-4bdf-8cd4-f42b' at line 1

; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'order,creator_id,create_time ) VALUES( 'certificate/6c38dea0-3450-4bdf-8cd4-f42b' at line 1

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)

解决方法,在sql关键字字段上加@Column注解,注意不同数据下关键字转义字符的不同,以上是mysql

springmvc下可以通过xml文件配置。可以到网上去搜 mybatis beginningDelimiter endingDelimiter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值