av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

簡(jiǎn)述Hibernate幾種映射類型

在我們學(xué)習(xí)Hibernate時(shí)就知道,Hibernate映射類型分為兩種:Hibernate內(nèi)置的映射類型和Hibernate客戶化映射類型。

為郟縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及郟縣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站制作、郟縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

內(nèi)置映射類型負(fù)責(zé)把一些常見的Java類型映射到相應(yīng)的SQL類型;此外,Hibernate還允許用戶實(shí)現(xiàn)UserType或CompositeUserType接口,來靈活地定制客戶化映射類型

1.Hibernate內(nèi)置映射類型

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

Java類型

Hibernate映射類型

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

大小和取值范圍

int/Integer

int/integer

INTEGER

4Byte

long/Long   

long

BIGINT

8Byte

short/Short

short

SAMLLINT

2Byte

byte/Byte

byte

TINYINT

1Byte

float/Float

float

FLOAT

4Byte

double/Double

double

DOUBLE

8Byte

BigDecimal

big_decimal

NUMBERIC

Numeric(8,2)

char/Character/String

character

CHAR(1)

定長(zhǎng)字符

String

string

VARCHAR

變長(zhǎng)字符

boolean/Boolean

boolean

BIT

布爾類型

boolean/Boolean

yes/no

CHAR(1)('Y'/'N')

布爾類型

boolean/Boolean

true/false

CHAR(1)('T'/'F')

布爾類型

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

Java類型

Hibernate映射類型

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

描述

java.util.Date/java.sql.Date

date

DATE

日期,yyyy-mm-dd

java.util.Date/java.sql.TIme

time

TIME

時(shí)間,hh:mm:ss

java.util.Date/java.sql.Timestamp

timestamp

TIMESTAMP

時(shí)間戳,yyyymmddhhmmss

java.util.Calendar

calendar

TIMESTAMP

同上

java.util.Calendar

calendar_date

DATE

日期yyyy-mm-dd

當(dāng)程序類型為java.sql.Timestamp, 數(shù)據(jù)庫(kù)中表屬性類型為timestamp的情況下,即使用戶以空值插入數(shù)據(jù),數(shù)據(jù)庫(kù)系統(tǒng)仍然會(huì)自動(dòng)填充timestamp的值

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

Java類型

Hibernate映射類型

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

MySql類型

Oracle類型

byte[]

binary

VARBINARY/BLOB

BLOB

BLOB

String

text

CLOB

TEXT

CLOB

serializable

實(shí)現(xiàn)serializable接口的一個(gè)java類

VARBINARY/BLOB

BLOB

BLOB

java.sql.Clob

clob

CLOB

TEXT

CLOB

java.sql.Blob

blob

BLOB

BLOB

BLOB

在應(yīng)用程序中通過Hibernate來保存java.sql.Clob或者java.sql.Blob實(shí)例時(shí),必須包含兩個(gè)步驟:
a. 在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中先保存一個(gè)空的Blob或Clob實(shí)例;

b. 接著鎖定這條記錄,更新在步驟(1)中保存的Blob或Clob實(shí)例,把二進(jìn)制數(shù)據(jù)或長(zhǎng)文本數(shù)據(jù)寫到Blob或Clob實(shí)例中。

 
 
 
  1.  1  
  2.  2Session session = sessionFactory.openSession();  
  3.  3Transaction tx = session.beginTransaction();  
  4.  4Customer customer = new Customer();  
  5.  5customer.setDescription(Hibernate.createClob("")); //先保存一個(gè)空的clob  
  6.  6session.save(customer);  
  7.  7session.flush();  
  8.  8//鎖定這條記錄  
  9.  9session.refresh(customer,LockMode.UPGRADE);  
  10. 10oracle.sql.CLOB clob = (oracle.sql.CLOB) customer.getDescription();  
  11. 11java.io.Writer pw = clob.getCharacterOutStream();  
  12. 12pw.write(longText);//longText是一個(gè)長(zhǎng)度超過255的字符串  
  13. 13pw.close();  
  14. 14tx.commit();  
  15. 15session.close(); 

一個(gè)java類型對(duì)應(yīng)多個(gè)Hibernate映射類型的場(chǎng)合。例如,如果持久化類的屬性為java.util.Date類型,對(duì)應(yīng)的Hibernate映射類型可以是date,time
或timestamp。此時(shí)必須根據(jù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表的字段的SQL類型,來確定Hibernate映射類型。如果字段為Date類型,則hibernate映射為datge,如果為TIME則為time,如果為TIMESTAMP則為timestamp。

2.客戶化映射類型

(很麻煩的一個(gè)東西,稍微看了看,日后需要再研究并總結(jié))

【編輯推薦】

  1. 簡(jiǎn)述Hibernate中加載并存儲(chǔ)對(duì)象
  2. Hibernate傳播性持久化攻略
  3. 深入了解Hibernate自動(dòng)狀態(tài)檢測(cè)
  4. 教你如何在Hibernate中實(shí)例化集合和代理
  5. Hinerbate單端關(guān)聯(lián)代理頗析

網(wǎng)站欄目:簡(jiǎn)述Hibernate幾種映射類型
分享路徑:http://uogjgqi.cn/article/djdhocj.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流