Hibernate映射類型分為兩種:內(nèi)置映射類型和客戶化映射類型。內(nèi)置映射類型負責(zé)把一些常見的Java類型映射到相應(yīng)的SQL類型;此外,Hibernate還允許用戶實現(xiàn)UserType或CompositeUserType接口,來靈活地定制客戶化映射類型。客戶化類型能夠把用戶定義的Java類型映射到數(shù)據(jù)庫表的相應(yīng)字段。
一、Hibernate的內(nèi)置映射類型
1、Java基本類型的Hibernate映射類型
Hibernate映射類型 |
Java類型 |
標準SQL類型 |
大小和取值范圍 |
integer或者int |
int或者java.lang.Integer |
INTEGER |
4字節(jié) |
long |
long Long |
BIGINT |
8字節(jié) |
short |
short Short |
SMALLINT |
2字節(jié) |
byte |
byte Byte |
TINYINT |
1字節(jié) |
float |
float Float |
FLOAT |
4字節(jié) |
double |
double Double |
DOUBLE |
8字節(jié) |
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接口任意實現(xiàn)類 |
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 在一個數(shù)據(jù)庫事務(wù)中先保存一個空的Blob或Clob實例。
l 接著鎖定這條記錄,更新上面保存的Blob或Clob實例,把二進制數(shù)據(jù)或文本數(shù)據(jù)寫到Blob或Clob實例中。
4、JDK自帶的個別Java類的Hibernate映射類型(略)
5、使用Hibernate內(nèi)置映射類型
二、客戶化映射類型(略)
結(jié)束!
http://aumy2008.blogbus.com/logs/13732626.html 轉(zhuǎn)自小于