版权声明:本文为博主原创文章,未经博主允许不得转载。 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>