zoukankan      html  css  js  c++  java
  • mybatis/tk mybatis下实体字段是关键字/保留字,执行报错

    实体如下:

    import com.fasterxml.jackson.annotation.JsonFormat;
    import com.xxx.web.bean.PagesStatic;
    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.springframework.format.annotation.DateTimeFormat;
    
    import javax.persistence.Column;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Transient;
    import java.time.LocalDateTime;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    /***
     * app图标
     */
    @JsonFormat
    public class ApiCertificate{
        @Id
        @GeneratedValue(generator = "JDBC")
        @Transient
        private Integer id;
    
        private String url;
    
        @Column(name = "`order`")
        private Integer order;
    
        private Integer creatorId;
    
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
        private LocalDateTime 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 version for 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

    参考来源:https://vladmihalcea.com/escape-sql-reserved-keywords-jpa-hibernate/

  • 相关阅读:
    介绍几个创建GUID的函数
    BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]
    REUSE_ALV_GRID_DISPLAY_LVC-双击事件’&IC1′
    REUSE_ALV_GRID_DISPLAY_LVC-行选择功能
    css实现超出部分用...代替
    调用高德地图
    原生验证码 不区分大小写
    原生验证码
    手写验证表单
    获取对象中值的两种方法
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11686079.html
Copyright © 2011-2022 走看看