07-hibernate中的Java類型映射

一、時間、日期類型

1、相關基礎

【1】在 Java 中, 代表時間和日期的類型包括:java.util.Datejava.util.Calendar。此外,在 JDBC API 中還提供了 3 個擴展了 java.util.Date 類的子類:java.sql.Date, java.sql.Time 和 java.sql.Timestamp,這三個類分別和標準 SQL 類型中的 DATE、TIMETIMESTAMP 類型對應。
【2】在標準 SQL 中, DATE 類型表示日期, TIME 類型表示時間,TIMESTAMP 類型表示時間戳,同時包含日期和時間信息。

2、如何進行映射?

【1】因爲java.util.Datejava.sql.Date, java.sql.Time 和 java.sql.Timestamp的父類,所以java.util.Date可以對應標準SQL類型中的DATE、TIME和TIMESTAMP
【2】基於【1】,在設置持久化類的DATE類型時,設置爲java.util.Date
【3】如何把java.util.Date映射爲DATE、TIME和TIMESTAMP?可以通過property中的type屬性進行映射。

例如:

 <property name="date" type="timestamp">
     <column name="date"/>
 </property>
 <!--或者-->
 <property name="date" type="time">
     <column name="date"/>
 </property>
 <!--或者-->
 <property name="date" type="date">
     <column name="date"/>
 </property>

在這裏插入圖片描述

二、大對象類型

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200526205750952.pn

  • 在 Java 中,java.lang.String 可用於表示長字符串(長度超過 255)字節數組 byte[] 可用於存放圖片或文件的二進制數據。此外,在 JDBC API 中還提供了 java.sql.Clobjava.sql.Blob 類型,它們分別和標準 SQL 中的 CLOB 和 BLOB 類型對應。CLOB 表示字符串大對象(Character Large Object)BLOB表示二進制對象(Binary Large Object)
  • Mysql 不支持標準 SQL 的 CLOB 類型,在 Mysql 中,用 TEXT、MEDIUMTEXT 及 LONGTEXT 類型來表示長度操作 255 的長文本數據。
  • 在持久化類中, 二進制大對象可以聲明爲byte[]java.sql.Blob 類型;字符串可以聲明爲 java.lang.Stringjava.sql.Clob
  • 實際上在 Java 應用程序中處理長度超過 255 的字符串,使用 java.lang.String 比 java.sql.Clob 更方便。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章