| 类型名称 | 显示长度 | 数据库类型 | 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.Integerif 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 |
4499

被折叠的 条评论
为什么被折叠?



