1. 程式人生 > >Hibernate--超長字串用clob型別新增到資料庫

Hibernate--超長字串用clob型別新增到資料庫

專案中需要用到Clob,自己以前雖然對此有些瞭解,但並沒有寫過程式碼.而Google的結果很多卻沒什麼和自己的專案比較相近的.算了自己搞吧.
    工程中使用SSH frameworks,因此著手點無非就是對Hibernate進行ORM mapping.  
    下面給出我自己的配置.比較簡單,但很實用,通過測試.執行無問題.


POJO類中內容欄位:content 宣告:
private java.sql.Clob content;


foo.hbm.xml 對映檔案片段
<property name="content" column="content" type="clob" />


將字串轉換為Clob物件
Clob clob = Hibernate.createClob("要存取的內容");
obj.setContent(clob);
這樣便完成了存的操作.


從Clob中獲取字串
由於Clob特殊的儲存格式,因此必須使用IO來進行處理.
我寫了個通用的靜態方法,用來進行轉換

public static String clob2String(Clob clob) {
      StringBuilder strBuilder = new StringBuilder("");
     BufferedReader reader=null;
 if (null != clob) {
          try {
                 reader = new BufferedReader(clob.getCharacterStream());
           } catch (SQLException e) {
               e.printStackTrace();
           }
            String st = "";
         try {
                while (null != (st = reader.readLine())) {
                 strBuilder.append(st+"\r\n");
        }
       } catch (IOException e) {
      e.printStackTrace();
      }
    }
      return strBuilder.toString();
   }

相關推薦

Hibernate--超長字串clob型別新增資料庫

專案中需要用到Clob,自己以前雖然對此有些瞭解,但並沒有寫過程式碼.而Google的結果很多卻沒什麼和自己的專案比較相近的.算了自己搞吧.    工程中使用SSH frameworks,因此著手點無非就是對Hibernate進行ORM mapping.      下面給出我自己的配置.比較簡單,但很實

字串長度超過4000字元的資料存入oracle資料庫clob型別的欄位裡,並之後做前臺查詢展示

這個過程會產生的問題有: 1. 因為oracle的兩個單引號之間字元長度不能超過4000,字串長度超過4000字元後或報字元過長的錯,無法直接insert或update進資料庫,必須得轉換成clob型別。 2.查出來的clob資料不是字串,無法直接展示。 我在ssm框架

ORACLE CLOB 型別轉換為字串

在ORACLE 中儲存 大量 文字 超過了 3000個漢字  varchar 裝不下 迫不得已使用了  : CLOB 型別   CLOB 型別轉換為字串:   select   dbms_lob.substr(ADDR_SHAP

ORCALE資料庫Date型別資料String型別接收收出現.0情況也就是顯示毫秒數

如: {    "createdate": "2018-11-28 14:53:24.0", } 但是資料庫中查詢結果並沒有毫秒數    解決方案     public void setCreat

oracle寫入clob型別時提示 ORA-01704:字串文字太長

oracle寫入clob型別是提示 ORA-01704:字串文字太長 解決方法是需要將長文字先賦值給變數,再執行insert 如下: declare a_clob clob:='1111'; begin insert into aa(a1) values (a_clo

MyBaits中列舉型別——在資料庫欄位型別字串、數字等非列舉型別情況下的使用

遇到的問題 當列舉型別的值型別為String時不管資料庫欄位型別是varchar還是其他字串型別總能成功轉換為相應的列舉型別,當是數字型別時有時可以有時不可以,主要原因是列舉型別轉換器的Handler實現導致的,詳見後面的討論。 為什麼要這麼設計? 因為是在處理遺留系統無法

hibernate自動建表設定欄位型別資料庫中為timestamp型別

1:專案需要,欄位應該設計為timestamp型別,但自動建表後總是被設定為datetime(當時用的資料庫為sqlserver) Google後,在配置檔案(Xxx.hbm.xml)中column新增 sql-type="timestamp" default="CUR

Maven整合SpringMVC+Spring+Hibernate 框架,實現簡單的插入資料庫資料功能

一、搭建開始前的準備 1、我用的MyEclipse2014版,大家也可以用IDEA。 2、下載Tomcat(免安裝解壓包)、MySQL(zip包下載地址 免安裝解壓包,好處就是雙擊啟動,最後我會把bat的啟動發給大家)、用的Navicat for MySQL的MySQL的圖

字串型別的日期轉換為date型別存入資料庫

最近要製作一個人員資訊,需要使用到My97DatePicker的日期控制元件,然後獲取到選定的日期資訊,呼叫loushang框架的後端cmd存入到資料庫。 資料庫表 person_info 可自行設計,只使用到create_time 欄位 注意:crea

MyBatis儲存CLOB型別資料到Oracle/MySQL資料庫

Mybatis儲存資料庫CLOB型別到oracle庫的操作在oracle中使用varchar2型別儲存字串時,發現儲存的最大長度就是4000字元,再長就會報錯。使用clob型別,可以儲存4g內容,而且mybatis可以自動解析clob型別,只需在寫insert和update語

java操作資料庫中的Clob型別

首先是POJO類: import java.sql.Clob;import java.util.Date; /*** * @author coffee**/ public class KybasicInfo implements java.io.Serializable {

Hibernate的Annotation中實體BLOB、CLOB型別的註解

   ReceiptSample rs = receiptSampleDao.findUnique("select rs from ReceiptSample rs where rs.receiptSampleId = ?", new Object[]{Long.parseLong(receiptSampl

Maven整合SpringMVC+Spring+Hibernate 框架,實現簡單的插入資料庫資料功能(二)

前一篇寫的有些多,大家先看前一篇,傳送門 具體的資源已將上傳到資源了。 上文我們直接搭建前的準備和資源配置都寫好了,下面進入具體程式碼編寫。承接上文的小3 3、我習慣建立介面,這樣對整個專案感覺更合理。 (1.)建立IBaseService(業務邏輯層,有的習慣寫成Ba

Oracle資料庫Clob型別儲存XML資料下節點內容查詢

今天有個sql查詢用到了在clob型別下查詢xml資料某個節點值,通過百度後在這裡記錄一下 xml資料格式如下: <?xml version="1.0" encoding="GBK"?> <flowdoc> <meta

Oracle中Clob型別處理解析(NHibernate long值繫結long列,或者是直接oraclecommand的插入的時候報錯都能,ORA-01461:僅可以插入LONG列的LONG值賦值

最近利用NHibernate對映型別為Clob欄位在插入資料時發現當字元的位元組數(一個半形字元一個位元組,一個全形字元兩個位元組)在2000-4000之間時報錯(ORA-01461:僅可以插入LONG列的LONG值賦值)。經過不斷查詢資料和自己的試驗該問題終於得到解決,下邊我將自己的心得給大家做一個分享。

Hibernate執行原生sql時,將資料庫的char(n)型別轉換成了character型別的解決方案

在使用Hibernate的原生態SQL對Oracle進行查詢時,碰到查詢char型別的時候始終返回的是一個字元,開始認為應該是Hibernate在做對映的把資料型別給對映成char(1),在經過查詢網上的一些資料,得知產生這個問題的主要原因確實是Hibernate再查詢Or

Hibernate怎麽

stack 持久化 begin prop pack inf host gbk odin 一.為什麽用Hibernate?  【核心:對象關系映射】   Hibernate是對jdbc的輕量級封裝,可以簡化數據庫連接操作,   在該框架之前,數據庫的操作步驟是: 1.根據連

jQuery中each方法 jQuery each後新增click

【轉自】jQuery 用each後新增click mydd = $('.plist'); mydd.each(function(i){ $(this).click(function(){ mydl.eq(i).hide("slow

hibernate多對多關係的新增與刪除

程式碼 bookdao public Integer save(Book book) { Session session = SessionFactoryUtils.getSession(); Transaction transaction = session.beginTran

SQL語句檢視資料庫資料量的大小

1、進入MQSQL命令列介面 2、輸入密碼 3、輸入命令    1、進入information_schema 資料庫(存放了其他的資料庫的資訊) use information_schema;   2、查詢所有資料的大小: s