Hibernate映射類型分為兩種:內置映射類型和客戶化映射類型。內置映射類型負責把一些常見的Java類型映射到相應的SQL類型;此外,Hibernate還允許用戶實現UserType或CompositeUserType接口,來靈活地定制客戶化映射類型。客戶化類型能夠把用戶定義的Java類型映射到數據庫表的相應字段。
一、Hibernate的內置映射類型
1、Java基本類型的Hibernate映射類型
Hibernate映射類型 |
Java類型 |
標準SQL類型 |
大小和取值范圍 |
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實例中。
聲明:此文轉自http://www.tkk7.com/wx886104/archive/2008/08/16/222403.html