1. 程式人生 > >MySQL與MyBatis型別的對應

MySQL與MyBatis型別的對應

一、常用資料型別和日期時間的對映表

MySQL JDBCType JavaType 備註
char CHAR String 定長字元
varchar VARCHAR String 變長字串
tinyint TINYINT byte 1位元組
smallint SMALLINT short 2位元組
int INTEGER int 4位元組
float FLOAT float 4位元組
bigint BIGINT long 8位元組
double DOUBLE double 8位元組
bit BOOLEAN boolean 布林型別
date Date util.Date、sql.Date YYYY-MM-DD
time TIME util.Date、sql.Date HH:MM:SS
timestamp TIMESTAMP util.Date、sql.Date YYYY-MM-DD HH:MM:SS
text VARCHAR String 文字型別【2^16-1位元組】
longtext LONGVARCHAR String 文字型別【2^32-1位元組】

二、mysql中表的資料結構(例子)

CREATE TABLE `uc_role` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT;

 三、程式碼中對應的jdbcType(例子)

 <resultMap id="roleResultMap" type="com.bscz.agm.dto.Role">
        <id property="id" column="id" jdbcType="BIGINT"/>
        <result property="name" column="name" jdbcType="VARCHAR"/>
        <result property="code" column="code" jdbcType="VARCHAR"/>
        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
        <result property="description" column="description" jdbcType="VARCHAR"/>
    </resultMap>