java类型 | Hibernate映射类型 | SQL类型 |
java.math.BigDecimal | big_decimal | numeric |
byte[] | binary | varbinary(blob) |
boolean(java.lang.Boolean) | boolean | bit |
byte(java.lang.Byte) | byte | tinyint |
java.util.Calendar | calendar | timestamp |
java.sql.Clob | clob | clob |
java.util.Date 或java.sql.Date | date | date |
double(java.lang.Double) | double | double |
float(java.lang.Float) | float | float |
int (java.lang.Integer) | integer | integer |
java.util.Local | local | varchar |
long(java.lang.Long) | long | bigint |
java.io.Serializable的某个实例 | serializable | varbinary(或blob) |
java.lang.String | string | varchar |
java.lang.String | text | clob |
java.util.Date 或 java.sql.Timestamp | time | timestamp |
从书上把这个表抄下来方便以后查阅.
考虑到 操作 blob 的字段太复杂 一个变换的技巧是 . 实体类用 byte[] 类型 , hibernate 类型用 binary ,数据库还是用 blob .这样 可以简化一些操作.
Hibernate的映射类型 hibernate mysql映射类型
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 实例时,必须包含两个步骤:
l 在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。
l 接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或 Clob 实例中