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