深入淺出Hibernate
測(cè)試第一個(gè)JunitTest所需要的類庫(kù)
試第一個(gè)JunitTest所需要的類庫(kù).jpg)
將hibernate.cfg.xml文件放到src目錄下,那么在進(jìn)行JUnit測(cè)試的時(shí)候,不需要制定hibernate.cfg.xml文件的路徑
通過(guò)Configuration config=new Configuration().configure();就可以讓Eclipse自動(dòng)找到找個(gè)文件。
表1 Hibernate標(biāo)識(shí)生成策略
試第一個(gè)JunitTest所需要的類庫(kù).jpg)
將hibernate.cfg.xml文件放到src目錄下,那么在進(jìn)行JUnit測(cè)試的時(shí)候,不需要制定hibernate.cfg.xml文件的路徑
通過(guò)Configuration config=new Configuration().configure();就可以讓Eclipse自動(dòng)找到找個(gè)文件。
表1 Hibernate標(biāo)識(shí)生成策略
標(biāo)識(shí)符生成器 | 描述 |
increment | 適用于代理主鍵。 由Hibernate自動(dòng)以遞增方式生成。 |
identity | 適用于代理主鍵。 由底層數(shù)據(jù)庫(kù)生成標(biāo)識(shí)符。 |
sequence | 適用于代理主鍵。 Hibernate根據(jù)底層數(shù)據(jù)庫(kù)的序列生成標(biāo)識(shí)符, 這要求底層數(shù)據(jù)庫(kù)支持序列。 |
hilo | 適用于代理主鍵。 |
seqhilo | 適用于代理主鍵。 使用一個(gè)高/低位算法來(lái)高效的生成long, short或者int類型的標(biāo)識(shí)符。 |
native | 適用于代理主鍵。 根據(jù)底層數(shù)據(jù)庫(kù)對(duì)自動(dòng)生成標(biāo)識(shí)符的方式, 自動(dòng)選擇identity、sequence或hilo。 |
uuid.hex | 適用于代理主鍵。 Hibernate采用128位的UUID算法生成標(biāo)識(shí)符。 |
uuid.string | 適用于代理主鍵。 UUID被編碼成一個(gè)16字符長(zhǎng)的字符串。 |
assigned | 適用于自然主鍵。由Java應(yīng)用程序負(fù)責(zé)生成標(biāo)識(shí)符。 |
foreign | 適用于代理主鍵。使用另外一個(gè)相關(guān)聯(lián)的對(duì)象的標(biāo)識(shí)符。 |
Hibernate映射類型
在對(duì)象/關(guān)系映射文件中,Hibernate采用映射類型作為Java類型和SQL類型的橋梁。Hibernate映射類型分為2種:內(nèi)置映射類型和自定義映射類型。
1、內(nèi)置映射類型
Hibernate對(duì)所有的Java原生類型、常用的Java類型如String、Date等都定義了內(nèi)置的映射類型。表2列出了Hibernate映射類型、對(duì)應(yīng)的Java類型以及對(duì)應(yīng)的標(biāo)準(zhǔn)SQL類型。
表2 Hibernate內(nèi)置映射類型
Hibernate映射類型 | Java類型 | 標(biāo)準(zhǔn)SQL類型 | 大小 |
integer/int | java.lang.Integer/int | INTEGER | 4字節(jié) |
long | java.lang.Long/long | BIGINT | 8字節(jié) |
short | java.lang.Short/short | SMALLINT | 2字節(jié) |
byte | java.lang.Byte/byte | TINYINT | 1字節(jié) |
float | java.lang.Float/float | FLOAT | 4字節(jié) |
double | java.lang.Double/double | DOUBLE | 8字節(jié) |
big_decimal | java.math.BigDecimal | NUMERIC | ? |
character | java.lang.Character/ java.lang.String/char | CHAR(1) | 定長(zhǎng)字符 |
string | java.lang.String | VARCHAR | 變長(zhǎng)字符 |
boolean/ yes_no/true_false | java.lang.Boolean/Boolean | BIT | 布爾類型 |
date | java.util.Date/ java.sql.Date | DATE | 日期 |
timestamp | java.util.Date/ java.util.Timestamp | TIMESTAMP | 日期 |
calendar | java.util.Calendar | TIMESTAMP | 日期 |
calendar_date | java.util.Calendar | DATE | 日期 |
binary | byte[] | BLOB | BLOB |
text | java.lang.String | TEXT | CLOB |
serializable | 實(shí)現(xiàn)java.io. Serializablej接口 的任意Java類 | BLOB | BLOB |
clob | java.sql.Clob | CLOB | CLOB |
blob | java.sql.Blob | BLOB | BLOB |
class | java.lang.Class | VARCHAR | 定長(zhǎng)字符 |
locale | java.util.Locale | VARCHAR | 定長(zhǎng)字符 |
timezone | java.util.TimeZone | VARCHAR | 定長(zhǎng)字符 |
currency | java.util.Currency | VARCHAR | 定長(zhǎng)字符 |
posted on 2007-01-14 17:06 小雨不打傘 閱讀(567) 評(píng)論(0) 編輯 收藏 所屬分類: 數(shù)據(jù)庫(kù)