类型名称 | 显示长度 | 数据库类型 | JAVA类型 | JDBC类型索引(int) | 描述 |
VARCHAR | L+N | VARCHAR | java.lang.String | 12 | |
CHAR | N | CHAR | java.lang.String | 1 | |
BLOB | L+N | BLOB | java.lang.byte[] | -4 | |
TEXT | 65535 | VARCHAR | java.lang.String | -1 | |
INTEGER | 4 | INTEGER UNSIGNED | java.lang.Long | 4 | |
TINYINT | 3 | TINYINT UNSIGNED | java.lang.Integer | -6 | |
SMALLINT | 5 | SMALLINT UNSIGNED | java.lang.Integer | 5 | |
MEDIUMINT | 8 | MEDIUMINT UNSIGNED | java.lang.Integer | 4 | |
BIT | 1 | BIT | java.lang.Boolean | -7 | |
BIGINT | 20 | BIGINT UNSIGNED | java.math.BigInteger | -5 | |
FLOAT | 4+8 | FLOAT | java.lang.Float | 7 | |
DOUBLE | 22 | DOUBLE | java.lang.Double | 8 | |
DECIMAL | 11 | DECIMAL | java.math.BigDecimal | 3 | |
BOOLEAN | 1 | 同TINYINT | |||
ID | 11 | PK (INTEGER UNSIGNED) | java.lang.Long | 4 | |
DATE | 10 | DATE | java.sql.Date | 91 | |
TIME | 8 | TIME | java.sql.Time | 92 | |
DATETIME | 19 | DATETIME | java.sql.Timestamp | 93 | |
TIMESTAMP | 19 | TIMESTAMP | java.sql.Timestamp | 93 | |
YEAR | 4 | YEAR | java.sql.Date | 91 |
以上就是Java数据类型和MySql数据类型对应表。
对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。
对于boolen类型,在mysql数据库中,个人认为用int类型代替较好,对bit操作不是很方便,尤其是在具有web页面开发的项目中,表示0/1,对应java类型的Integer较好。
mysql官方文档:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
1.常规Hibernate 映射
integer 或者 int | int 或者 java.lang.Integer | INTEGER | 4 字节 |
long | long Long | BIGINT | 8 字节 |
short | short Short | SMALLINT | 2 字节 |
byte | byte Byte | TINYINT | 1 字节 |
float | float Float | FLOAT | 4 字节 |
double | double Double | DOUBLE | 8 字节 |
big_decimal | java.math.BigDecimal | NUMERIC | NUMERIC(8,2)8 位 |
character | char Character String | CHAR(1) | 定长字符 |
string | String | VARCHAR | 变长字符串 |
boolean | boolean Boolean | BIT | 布尔类型 |
yes_no | boolean Boolean | CHAR(1) (Y-N) | 布尔类型 |
true_false | boolean Boolean | CHAR(1) (T-F) | 布尔类型 |
2 、 Java 时间和日期类型的Hibernate 映射
映射类型 | Java 类型 | 标准 SQL 类型 | 描述 |
date | util.Date 或者 sql.Date | DATE | YYYY-MM-DD |
time | Date Time | TIME | HH:MM:SS |
timestamp | Date Timestamp | TIMESTAMP | YYYYMMDDHHMMSS |
calendar | calendar | TIMESTAMP | YYYYMMDDHHMMSS |
calendar_date | calendar | DATE | YYYY-MM-DD |
3 、 Java 大对象类型的Hibernate 映射类型
映射类型 | Java 类型 | 标准 SQL 类型 | MySQL 类型 | Oracle 类型 |
binary | byte[] | VARBINARY( 或BLOB) | BLOB | BLOB |
text | String | CLOB | TEXT | CLOB |
serializable | Serializable 接口任意实现类 | VARBINARY( 或BLOB) | BLOB | BLOB |
clob | java.sql.Clob | CLOB | TEXT | CLOB |
blob | java.sql.Blob | BLOB | BLOB | BLOB |
在程序中通过 Hibernate 来保存java.sql.Clob 或者java.sql.Blob 实例时,必须包含两个步骤:
1.在一个数据库事务中先保存一个空的Blob 或Clob 实例。
2.接着锁定这条记录,更新上面保存的Blob 或Clob 实例,把二进制数据或文本数据写到Blob 或Clob 实例中
BIT(1) (new in MySQL-5.0) | BIT | java.lang.Boolean |
BIT( > 1) (new in MySQL-5.0) | BIT | byte[] |
TINYINT | TINYINT | java.lang.Boolean if the configuration property tinyInt1isBit is set to true (the default) and the storage size is 1, or java.lang.Integer if not. |
BOOL, BOOLEAN | TINYINT | See TINYINT, above as these are aliases for TINYINT(1), currently. |
SMALLINT[(M)] [UNSIGNED] | SMALLINT [UNSIGNED] | java.lang.Integer (regardless if UNSIGNED or not) |
MEDIUMINT[(M)] [UNSIGNED] | MEDIUMINT [UNSIGNED] | java.lang.Integer, if UNSIGNED java.lang.Long (C/J 3.1 and earlier), or java.lang.Integer for C/J 5.0 and later |
INT,INTEGER[(M)] [UNSIGNED] | INTEGER [UNSIGNED] | java.lang.Integer , if UNSIGNED java.lang.Long |
BIGINT[(M)] [UNSIGNED] | BIGINT [UNSIGNED] | java.lang.Long , if UNSIGNED java.math.BigInteger |
FLOAT[(M,D)] | FLOAT | java.lang.Float |
DOUBLE[(M,B)] | DOUBLE | java.lang.Double |
DECIMAL[(M[,D])] | DECIMAL | java.math.BigDecimal |
DATE | DATE | java.sql.Date |
DATETIME | DATETIME | java.sql.Timestamp |
TIMESTAMP[(M)] | TIMESTAMP | java.sql.Timestamp |
TIME | TIME | java.sql.Time |
YEAR[(2|4)] | YEAR | If yearIsDateType configuration property is set to false, then the returned object type is java.sql.Short . If set to true (the default) then an object of type java.sql.Date (with the date set to January 1st, at midnight). |
CHAR(M) | CHAR | java.lang.String (unless the character set for the column is BINARY, then byte[] is returned. |
VARCHAR(M) [BINARY] | VARCHAR | java.lang.String (unless the character set for the column is BINARY, then byte[] is returned. |
BINARY(M) | BINARY | byte[] |
VARBINARY(M) | VARBINARY | byte[] |
TINYBLOB | TINYBLOB | byte[] |
TINYTEXT | VARCHAR | java.lang.String |
BLOB | BLOB | byte[] |
TEXT | VARCHAR | java.lang.String |
MEDIUMBLOB | MEDIUMBLOB | byte[] |
MEDIUMTEXT | VARCHAR | java.lang.String |
LONGBLOB | LONGBLOB | byte[] |
LONGTEXT | VARCHAR | java.lang.String |
ENUM('value1','value2',...) | CHAR | java.lang.String |
SET('value1','value2',...) | CHAR | java.lang.String |