Hibernate映射類型分為兩種:內(nèi)置映射類型和客戶化映射類型。內(nèi)置映射類型負(fù)責(zé)把一些常見(jiàn)的Java類型映射到相應(yīng)的SQL類型;此外,Hibernate還允許用戶實(shí)現(xiàn)UserTypeCompositeUserType接口,來(lái)靈活地定制客戶化映射類型。客戶化類型能夠把用戶定義的Java類型映射到數(shù)據(jù)庫(kù)表的相應(yīng)字段。

 

一、Hibernate的內(nèi)置映射類型

1Java基本類型的Hibernate映射類型

Hibernate映射類型

Java類型

標(biāo)準(zhǔn)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)

定長(zhǎng)字符

string

String

VARCHAR

變長(zhǎng)字符串

boolean

boolean Boolean

BIT

布爾類型

yes_no

boolean Boolean

CHAR(1) (Y-N)

布爾類型

true_false

boolean Boolean

CHAR(1) (T-F)

布爾類型

 

2Java時(shí)間和日期類型的Hibernate映射

映射類型

Java類型

標(biāo)準(zhǔn)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

 

3Java大對(duì)象類型的Hibernate映射類型

映射類型

Java類型

標(biāo)準(zhǔn)SQL類型

MySQL類型

Oracle類型

binary

byte[]

VARBINARY(BLOB)

BLOB

BLOB

text

String

CLOB

TEXT

CLOB

serializable

Serializable接口任意實(shí)現(xiàn)類

VARBINARY(BLOB)

BLOB

BLOB

clob

java.sql.Clob

CLOB

TEXT

CLOB

blob

java.sql.Blob

BLOB

BLOB

BLOB

 

       在程序中通過(guò)Hibernate來(lái)保存java.sql.Clob或者java.sql.Blob實(shí)例時(shí),必須包含兩個(gè)步驟:

l         在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中先保存一個(gè)空的BlobClob實(shí)例。

l         接著鎖定這條記錄,更新上面保存的BlobClob實(shí)例,把二進(jìn)制數(shù)據(jù)或文本數(shù)據(jù)寫(xiě)到BlobClob實(shí)例中。

 

4JDK自帶的個(gè)別Java類的Hibernate映射類型(略)

 

5、使用Hibernate內(nèi)置映射類型

  

二、客戶化映射類型(略)

結(jié)束!

http://aumy2008.blogbus.com/logs/13732626.html  轉(zhuǎn)自小于