Mybatis javaType以及java jdbcType的使用

使用场景:

  1. MyBatis 插入空值时,需要指定jdbcType,否则会出现出现1111错误
  2.  当数据类型不同时如果数据库id字段是int类型,那么它的jdbc就是Integer类型。当实体类的这个映射属性id为Long类型时,如果不设置jdbcType和javaType的话,查询的结果返回给实体时就会转换错误,写了这两个mybatis就会帮我们转换成相应的类型,从来避免发生错误

其余情况可以省略 javaType以及java jdbcType

Mybatis中javaType和jdbcType对应关系:
JDBC 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

<resultMap type="java.util.Map" id="resultData">  
  <result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>  
  <result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>  
  <result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>  
  <result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>  
  <result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>  
  <result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>  
  <result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>  
  <result property="FLD_BLOB" column="FLD_BLOB"  javaType="Blob" jdbcType="BLOB" />  
  <result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>  
  <result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>  
  <result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>  
 </resultMap>

 

发布了9 篇原创文章 · 获赞 5 · 访问量 667
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览