java和mysql 的数据类型对照(映射)表
数据类型:
java | mysql |
---|---|
byte | tinyint |
short | smallint |
int | int(★) |
long | bigint |
char / String | varchar(★) / char |
boolean | tinyint / int 代替 |
float / double | float / double |
java.sql.Date | date 日期 |
java.sql.Time | time 时间 |
java.sql.Timestamp | timestamp(★) 时间戳 / datetime(★) 日期+时间 |
java.sql.Clob(长文本) | text |
java.sql.Blob(二进制) | blob |
更全:
注意:
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
在sql中如果有写: jdbcType=REAL: 就是指定float类型
代表:
Mybatis中javaType和jdbcType对应关系
REAL float
FLOAT double
DOUBLE double
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
varchar:可变长度 mysql的方言 varchar(20): 存放abc 只会占用三个
char:固定长度 char(20) 存放abc 占用20个
double(5,2):该小数长度为5个,小数占2个 最大值:999.99
timestamp 时间戳,若给定值为null,数据库会把当前的系统时间存放到数据库中(*)
二进制数据(_Blob)
对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。
- _BLOB和_text存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写。
- _BLOB存储的数据只能整体读出。
- _TEXT可以指定字符集,_BLO不用指定字符集。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性:
若给定值为null,数据库会把当前的系统时间存放到数据库中(*)
更多: