溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate中有哪些映射類型

發布時間:2021-08-10 17:59:16 來源:億速云 閱讀:192 作者:Leah 欄目:編程語言

Hibernate中有哪些映射類型,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.Hibernate內置映射類型

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

Java類型

Hibernate映射類型

標準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)

定長字符

String

string

VARCHAR

變長字符

boolean/Boolean

boolean

BIT

布爾類型

boolean/Boolean

yes/no

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

布爾類型

boolean/Boolean

true/false

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

布爾類型

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

Java類型

Hibernate映射類型

標準SQL類型

描述

java.util.Date/java.sql.Date

date

DATE

日期,yyyy-mm-dd

java.util.Date/java.sql.TIme

time

TIME

時間,hhmmss

java.util.Date/java.sql.Timestamp

timestamp

TIMESTAMP

時間戳,yyyymmddhhmmss

java.util.Calendar

calendar

TIMESTAMP

同上

java.util.Calendar

calendar_date

DATE

日期yyyy-mm-dd

當程序類型為java.sql.Timestamp, 數據庫中表屬性類型為timestamp的情況下,即使用戶以空值插入數據,數據庫系統仍然會自動填充timestamp的值

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

Java類型

Hibernate映射類型

標準SQL類型

MySql類型

Oracle類型

byte[]

binary

VARBINARY/BLOB

BLOB

BLOB

String

text

CLOB

TEXT

CLOB

serializable

實現serializable接口的一個java

VARBINARY/BLOB

BLOB

BLOB

java.sql.Clob

clob

CLOB

TEXT

CLOB

java.sql.Blob

blob

BLOB

BLOB

BLOB

在應用程序中通過Hibernate來保存java.sql.Clob或者java.sql.Blob實例時,必須包含兩個步驟:
a. 在一個數據庫事務中先保存一個空的Blob或Clob實例;

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

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

一個java類型對應多個Hibernate映射類型的場合。例如,如果持久化類的屬性為java.util.Date類型,對應的Hibernate映射類型可以是date,time
或timestamp。此時必須根據對應的數據庫表的字段的SQL類型,來確定Hibernate映射類型。如果字段為Date類型,則hibernate映射為datge,如果為TIME則為time,如果為TIMESTAMP則為timestamp。


看完上述內容,你們掌握Hibernate中有哪些映射類型的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女