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實例中。
4、JDK自帶的個別Java類的Hibernate映射類型(略)
5、使用Hibernate內置映射類型
二、客戶化映射類型(略)
結束!
http://aumy2008.blogbus.com/logs/13732626.html 轉自小于