zoukankan      html  css  js  c++  java
  • Mybatis使用时因jdbcType类型大小写书写不规范导致的异常

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.Intege
    
    No enum constant:提示说mybatis没有Integer该类型的枚举常量,导致该异常抛出
    
       数据库类型和Java类型之间的关系:               
        DBC Type                Java Type  
        CHAR                     String  
        VARCHAR                  String  
        LONGVARCHAR              String  
        NUMERIC                  java.math.BigDecimal  
        DECIMAL                  java.math.BigDecimal  
        BIT                      boolean
        BOOLEAN                  boolean  
        TINYINT                  byte  
        SMALLINT                 short  
        INTEGER                  int  
        BIGINT                   long  
        REAL                     float  
        FLOAT                    double  
        DOUBLE                   double  
        BINARY                   byte[]  
        VARBINARY                byte[]  
        LONGVARBINARY            byte[]  
        DATE                     java.sql.Date  
        TIME                     java.sql.Time  
        TIMESTAMP                java.sql.Timestamp  
        CLOB                     Clob  
        BLOB                     Blob  
        ARRAY                    Array  
        DISTINCT                 mapping of underlying type  
        STRUCT                   Struct  
        REF                       Ref  
        DATALINK            java.net.URL[color=red][/color] 
    
    而MyBatis所支持的jdbcType类型有一下几种:
    BITFLOATCHARTIMESTAMP、OTHER、 UNDEFINED
    TINYINTREALVARCHARBINARY、BLOB、 NVARCHAR
    SMALLINTDOUBLE、LONGVARCHAR、VARBINARY、CLOB、NCHAR
    INTEGER、NUMERIC、DATE、 LONGVARBINARY、BOOLEAN 、NCLOB
    BIGINTDECIMAL、TIME、NULLCURSOR
    
    注意:在书写jabcType类型的时候,是有严格的大小写的区分的,否则会抛出上面的异常,即mybatis所定义的类型常量枚举不存在
    场景重现:<!-- 批量新增 -->
        <insert id="insertAddBatchBillid" parameterType="map">
            insert into tbc_specbill_target
            (billid,sms_type,state,updatetime,staff,mark_type,desc_info,attachproname,attachcompany,tag_count)
            values
            <foreach collection="param" item="i" separator=",">
                (#{i.col0,jdbcType=VARCHAR}, #{i.col1,jdbcType=VARCHAR},
                0, SYSDATE(),#{userName,jdbcType=VARCHAR},#{i.col2,jdbcType=VARCHAR},#{i.col3,jdbcType=VARCHAR},#{i.attachproname,jdbcType=VARCHAR},
                #{i.attachcompany,#{i.col4,jdbcType=Integer})
              //工作中偶遇的情景,导致异常产生,将jdbcType=Integer修改为jdbcType=INTEGER 后运行正常
            </foreach>                                                  
        </insert>
  • 相关阅读:
    BZOJ 2655: calc(拉格朗日插值)
    BZOJ 1485: [HNOI2009]有趣的数列(卡特兰数)
    [学习笔记] 关于组合数的一些总结
    CF 1076E Vasya and a Tree(线段树+树剖)
    CF 1082E Increasing Frequency(贪心)
    51nod 1149 Pi的递推式(组合数学)
    LOJ 2743(洛谷 4365) 「九省联考 2018」秘密袭击——整体DP+插值思想
    关于 unsigned int 比较大小
    洛谷 3295 [SCOI2016]萌萌哒——并查集优化连边
    洛谷 P4512 [模板] 多项式除法
  • 原文地址:https://www.cnblogs.com/sm-myworks/p/6122903.html
Copyright © 2011-2022 走看看