【MyBatis】】jdbcType和javaType对应关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mr_EvanChen/article/details/81981585

  jdbcType和javaType对应关系如下:

    jdbcType            javaType

    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]

其中jdbcType的作用为:

当执行mapping文件的时候,有个映射的参数为空,那么无法确定他的类型,这个时候就需要jdbcType来确定类型。例如下面两条插入语句,传进来的参数只有一个参数(ID)或一个参数都不存的情况下,执行insert1是没有问题的,因为当sql中找不到ID和VALUE的值时,会根据jdbcType指定的类型去给该字段设置一个空值,然后存入数据库(如果字段不为空会报错)同样情况下执行insert2 的时候,则会报错。

<insert id="insert1" parameterType="HashMap">
    insert into TEST values(#{ID,jdbcType=NUMERIC}, #{VALUE,jdbcType=VARCHAR})
</insert>
<insert id="insert2" parameterType="HashMap">
    insert into TEST values(#{ID}, #{VALUE})
</insert>

猜你喜欢

转载自blog.csdn.net/Mr_EvanChen/article/details/81981585