CLOB是一種數據庫中的數據類型。
Character Large Object
SQL 類型 CLOB 在 JavaTM 編程語言中的映射關係。SQL CLOB 是
內置類型,它將字符大對象 (Character Large Object) 存儲爲數據庫表某一行中的一個列值。默認狀況下,
驅動程序使用 SQL locator(CLOB) 實現 Clob 對象,這意味着 CLOB 對象包含一個指向 SQL CLOB 數據的邏輯
指針而不是數據自己。Clob 對象在它被建立的事務處理期間有效。
在一些
數據庫系統裏,也使用Text 做爲CLOB的別名,好比SQL Server
@Lob 註解屬性將被持久化爲 Blog 或 Clob 類型。具體的java.sql.Clob, Character[], char[] 和 java.lang.String 將被持久化爲 Clob 類型. java.sql.Blob, Byte[], byte[] 和 serializable type 將被持久化爲 Blob 類型。
@Lob 持久化爲Blob或者Clob類型,根據get方法的不一樣,自動進行Clob和Blob的轉換
@Lob
public String getFullText() {
return fullText; // clob type
}
@Lob
public byte[] getFullCode() {
return fullCode; // blog type
}
@Lob 一般與@Basic同時使用,提升訪問速度。
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name="DtaContent", columnDefinition="TEXT", nullable=true)
public String getDtaContent() {
return dtaContent;
}
@Basic 實體Bean中全部的非Static 非transient的屬性均可以被持久化,沒有定義註解屬性的等價於在其上添加了@Basic註解
經過@Basic註解能夠聲明屬性的獲取策略(lazy與否),默認的是即時獲取(early fetch),這裏又討論到了
延遲關聯獲取和延遲屬性獲取,一般不須要對簡單屬性設置延遲獲取,如須要定義@Basic(fetch=FetchType.LAZY)
2CLOB和BLOB的區別
CLOB使用CHAR來保存數據。 如:保存XML文檔。
BLOB就是使用二進制保存數據。 如:保存位圖。
mysql中text 最大長度爲65,535(2的16次方–1)字符的TEXT列。
若是你以爲text長度不夠,能夠選擇
MEDIUMTEXT最大長度爲16,777,215。
LONGTEXT最大長度爲4,294,967,295
Text主要是用來存放非二進制的文本,如論壇帖子,題目,或者百度知道的問題和回答之類。