1. Mybatis支持的JDBC类型
为了未来的参考,MyBatis通过包含的jdbcType枚举型,支持下面的JDBC类型。
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
BIT | FLOAT | CHAR | TIMESTAMP | OTHER | UNDEFINED |
TINYINT | REAL | VARCHAR | BINARY | BLOB | NVARCHAR |
SMALLINT | DOUBLE | LONGVARCHAR | VARBINARY | CLOB | NCHAR |
INTEGER | NUMERIC | DATE | LONGVARBINARY | BOOLEAN | NCLOB |
BIGINT | DECIMAL | TIME | NULL | CURSOR |
注意:
JDBC类型是仅仅需要对插入,更新和删除操作可能为空的列进行处理。这是JDBC的需要,而不是MyBatis的。
2. Mybatis中javaType和jdbcType对应和CRUD例子
代码:
<resultMap type="java.util.Map" id="resultSmart">
<result property="SMART_NUMBER" column="SMART_NUMBER" javaType="double" jdbcType="NUMERIC"/>
<result property="SMART_VARCHAR" column="SMART_VARCHAR" javaType="string" jdbcType="VARCHAR"/>
<result property="SMART_DATE" column="SMART_DATE" javaType="java.sql.Date" jdbcType="DATE"/>
<result property="SMART_INTEGER" column="SMART_INTEGER" javaType="int" jdbcType="INTEGER"/>
<result property="SMART_DOUBLE" column="SMART_DOUBLE" javaType="double" jdbcType="DOUBLE"/>
<result property="SMART_LONG" column="SMART_LONG" javaType="long" jdbcType="INTEGER"/>
<result property="SMART_CHAR" column="SMART_CHAR" javaType="string" jdbcType="CHAR"/>
<result property="SMART_BLOB" column="SMART_BLOB" javaType="[B" jdbcType="BLOB" />
<result property="SMART_CLOB" column="SMART_CLOB" javaType="string" jdbcType="CLOB"/>
<result property="SMART_FLOAT" column="SMART_FLOAT" javaType="float" jdbcType="FLOAT"/>
<result property="SMART_TIMESTAMP" column="SMART_TIMESTAMP" javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>
</resultMap>
3. 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[color=red][/color]