Hibernate 對映xml中的屬性型別
Hibernate的內建對映型別
1 JAVA基本型別(包括它們的包裝類)和Hibernate對映型別
Hibernate |
Java型別 |
標準SQL型別 |
大小和取值範圍 |
integer/int |
int/java.lang.Integer |
integer |
4位元組,-2^31~2^31-1 |
long |
long/java.lang.Long |
bigint |
8位元組, -2^63~2^63-1 |
short |
short/java.lang.Short |
smallint |
2位元組, -2^15~2^15-1 |
byte |
byte/java.lang.Byte |
tinyint |
1位元組, -128~127 |
flat |
float/java.lang.Float |
float |
4位元組, 單精度浮點數 |
double |
double/java.lang.Double |
double |
8位元組, 雙精度浮點數 |
big_decimal |
java.math.BigDecimal |
numeric |
用法:numeric(8,2) |
character |
char/…Character/…String |
char(1) |
定長字元 |
string |
java.lang.String |
varchar |
變長字串 |
boolean |
boolean/java.lang.Boolean |
bit |
布林型別 |
yes_no |
boolean/java.lang.Boolean |
char(1)(‘Y’/’N’) |
布林型別 |
true_false |
boolean/java.lang.Boolean |
char(1)(‘T’/’F’) |
布林型別 |
1. <property name="author" type="java.lang.String">
2. <column name="author" length="20" not-null="true" />
3. </property>
2 JAVA時間和日期型別的Hibernate對映型別
對映型別 |
java型別 |
標準SQL型別 |
描述 |
date |
java.util.Date/java.sql.Date |
date |
日期,形式:yyyy-mm-dd |
time |
java.util.Date/java.sql.Time |
time |
時間,形式:hh:mm:ss |
timestamp |
…Date/java.sql.Timestamp |
timestamp |
形式:yyyymmddhhmmss |
calendar |
java.util.Calendar |
timestamp |
時間和日期,形式同上 |
calendar_date |
java.util.Calendar |
date |
日期,形式:yyyy-mm-dd |
在標準SQL中,DATE表示日期(2005-01-09),TIME表示時間(11:46:54),TIMESTAMP表示時間戳,包含日期和時間資訊(20050109114654),如果沒有顯式插入,由系統自動新增當前系統時間
3 Java大物件型別的Hibernate對映型別
對映型別 |
Java型別 |
標準SQL型別 |
描述 |
binary |
byte[] |
varbinary/blob |
存放二進位制數 |
text |
java.lang.String |
clob |
字串大物件 |
serializable |
實現java.io.Serializable介面的類 |
varbinary/blob |
|
clob |
java.sql.Clob |
clob |
字串大物件 |
bolb |
java.sql.Blob |
blob |
二進位制大物件 |
MySQL不支援標準SQL的CLOB型別。
通過Hibernate來儲存java.sql.Clob或java.sql.Blob例項時,發須包含兩個步驟:
(1) 在一個資料庫事務中先儲存一個空的Blob或Clob例項
(2) 鎖定記錄,更新上一步儲存的Bolb或Clob例項,把二進位制數或長文字寫進去,如:
[java] view plaincopy
1. Customer customer=new Customer();
2. customer.setDescription(Hibernate.createClob(“”));//儲存一個空的Clob例項
3. session.save(customer);
4. session.flush();
5. session.refresh(customer,LockMode.UPGRADE);//鎖定記錄
6. oracle.sql.CLOB clob=(oracle.sql.CLOB)customer.getDescription();
7. java.io.Writer pw=clob.getCharacterOutputStream();
8. pw.write(longText);//lognText變數表示長度超過255的字串
9. pw.close();
10. tx.commit();
11. session.close();
以上不用java.sql.Blob和java.sql.Clob處理JAVA大對有以下兩個原因:
(1) Blob和Clob例項只有在一個資料庫事務中才有效
(2) 有些資料庫的JDBC驅動程式不支援java.sql.Blob或java.sq.Clob。如果在Java應用中處理圖片或長檔案的二進位制數用byte[]比java.sql.Blob方便;如果處理長度超過255的字串java.lang.String比java.sql.Clob更方法
JDK自帶的個別JAVA類的Hibernate對映型別
對映型別 |
Java型別 |
標準SQL型別 |
class |
java.lang.Class |
VARCHAR |
locale(現場) |
java.util.Locale |
VARCHAR |
timezone(地區) |
java.util.TimeZone |
VARCHAR |
currency(流通) |
java.utilCurrency |
VARCHAR |
相關文章
- 關於struts2 action中map型別屬性的對映型別
- HIBERNATE的對映---資料庫表中欄位和對應持久化類中屬性都是自定義型別的?資料庫持久化型別
- AutoMapper在MVC中的運用04-string對映各種型別、一個屬性對映多個屬性等APPMVC型別
- HIBERNATE的自定義型別主鍵的對映??型別
- [Hibernate求助]如何構造自己的對映型別?型別
- AutoMapper在MVC中的運用06-一次性定義對映、複雜型別屬性對映APPMVC型別
- Hibernate annotation, JPA如何對映多個屬性為unique
- MapStruct屬性對映Struct
- TypeScript 對映型別TypeScript型別
- Hibernate繼承對映多型的詳解繼承多型
- 搞懂 TypeScript 中的對映型別(Mapped Types)TypeScript型別APP
- TypeScript 之對映型別TypeScript型別
- hibernate 元件對映元件
- XML屬性XML
- EF:自定義Oracle的對映型別Oracle型別
- WebSphere Integration Developer V7 中的 XML 對映WebDeveloperXML
- Entity Framework Code First屬性對映約定Framework
- 微服務架構MapStruct屬性對映微服務架構Struct
- EF:oracle的number型別對映為C#的boolean型別Oracle型別C#Boolean
- 定義物料型別的屬性型別
- 如何使用Java泛型對映不同的值型別Java泛型型別
- Guru of the week:#17 型別對映. (轉)型別
- elasticsearch的object型別和動態對映ElasticsearchObject型別
- Hibernate配置檔案中對映元素詳解
- XML 屬性概述XML
- LocalSessionFactoryBean載入Hibernate 對映的幾種方式及區別SessionBean
- hibernate筆記–實體類對映檔案”*.hbm.xml”詳解筆記XML
- 領域物件裡有個屬性的型別是介面,如何用hibernate持久化物件型別持久化
- Mybatis 基礎xml對映MyBatisXML
- Hibernate--繼承對映繼承
- String型別的屬性和方法型別
- Hibernate 的關聯關係對映
- hibernate對映合成模式的問題模式
- Hibernate中@Struct註解型別Struct型別
- 如何將資料庫中json格式的列值對映到java物件的屬性中資料庫JSONJava物件
- hibernate(五) hibernate一對一關係對映詳解
- XML中的DTD文件型別定義XML型別
- Android XML 屬性AndroidXML