hibernate_對映大欄位(圖片,長文字等)
示例程式, 儲存一張圖片到mysql 資料庫, 然後進行讀取:
@Before public void testSave() throws Exception{ Session session = HibernateUtil.getInstance().getSession(); session.beginTransaction(); BlobObj obj = new BlobObj(); File file = new File("C:\\Users\\Jack\\Workspaces\\MyEclipse 2016 CI\\hibernate\\huangmengdan.jpg"); FileInputStream fis = new FileInputStream(file); //在hibernate3.5: //Hibernate.createBlob(InputStream); //session.getLobHelper(): 得到一個大欄位建立助手 obj.setImg(session.getLobHelper().createBlob(fis, file.length())); session.save(obj); session.getTransaction().commit(); fis.close(); session.close(); } @Test public void testGet() throws Exception{ Session session = HibernateUtil.getInstance().getSession(); BlobObj blobObj = session.get(BlobObj.class, 1L); Blob blob = blobObj.getImg(); File file = new File("C:\\Users\\Jack\\Workspaces\\MyEclipse 2016 CI\\hibernate\\women.jpg"); FileOutputStream fos = new FileOutputStream(file); InputStream is = blob.getBinaryStream(); int len = 0; byte[] buf = new byte[1024]; while((len=is.read(buf)) > 0){ fos.write(buf, 0, len); } fos.flush(); fos.close(); is.close(); session.close(); }
如果你用的mysql 驅動是5.0.8 及以下版本, 這句程式碼session.getLobHelper().createBlob(fis, file.length()) 會報一個異常:
java.lang.AbstractMethodError: Method com/mysql/jdbc/PreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V is abstract
原因: hibernate3.5 以上版本對Blob 的建立方法進行了改動.
解決方案: 下載mysql 最新的驅動程式, 替換即可.
下面介紹大物件型別在java, sql, hibernate 中對應的型別:
相關推薦
hibernate_對映大欄位(圖片,長文字等)
示例程式, 儲存一張圖片到mysql 資料庫, 然後進行讀取: @Before public void testSave() throws Exception{ Session session = HibernateUtil.getInstance().getSes
JPA之大資料欄位對映與欄位延遲載入
1、修改Person.java中的程式碼 package cn.sunft.bean; import java.util.Date; import javax.persistence.Basic; import javax.persistence.Column; imp
分治法 解決最大欄位和問題
分治法求解最大欄位和問題 1 問題描述 給定由n個整數(可能由負數)組成的序列(a1, a2,...,an),最大欄位和問題求 該序列中連續子段和的最大值,並找出這個連續子段。 2 使用python程式設計解決,具體程式碼如下 # 求出最大子段和, 以及最大子段和 對應的位置
最大欄位和 動態規劃
最大子段和 給定由n個整數(可能有負整數)組成的序列(a1,a2,…,an),最大子段和問題要求該序列形如 的最大值(1<=i<=j<=n),當序列中所有整數均為負整數時,其最大子段和為0。 #include<stdio.h> #include<
演算法 | 最大欄位和
#include <stdio.h> int a[100001],dp[100001]; int main() { int T,n; while(~scanf("%d",&n)) {
Oracle varchar2改成大欄位型別clob
做專案中經常碰到資料庫改欄位問題,給自己做個記錄,下次直接可以拿來用了。Oracle 有些欄位直接修改會報錯ORA-22858: invalid alteration of datatype。不允許修改。不允許修改怎麼辦呢。。總不能把表幹掉重新建欄位吧。這在生產肯定行不通。可以先建個新欄
Dynamics CRM SQL查詢OptionSet欄位對應的文字
SELECT Value FROM StringMap WHERE AttributeName='欄位名稱' and LangId=2052 and--語言 1033為英文 ObjectTypeCode=( SELECT [ObjectTypeCode] FROM Entity WITH
HDU 1231 簡單DP之最大欄位和
原題地址:http://acm.hdu.edu.cn/showproblem.php?pid=1231 演算法核心: 動態規劃, 陣列為vec[]vec[],設dp[i]dp[i] 是以vec[i]
關於最大欄位和的若干解法和優化
最大欄位和是常見的一個入門演算法問題,根據演算法的優化程度,這裡分為了四種方法: 第一種:複雜度為O(N ^ 2),兩個用於語句巢狀 int summax_1(int *a,int tem) { int temp=0,temp_maxi=0,temp_maxj=
提交訂單效能優化系列之013-測試SQL語句中少查詢幾個欄位(包括大欄位)
概括總結 這一版本寫了兩個測試類,一個測試類中查詢全部欄位,另一個測試類中只查詢必要的欄位,然後對比效能。結論是:根據是減少的欄位的長度不同,效能會不同。具體請檢視下面的測試結果。 013版本更新說
ElasticSearch學習筆記六 對映元欄位( Mapping Meta-Fields)
Meta-Fields 每個文件都有與之關聯的元欄位,例如_index、_type和 _id 元欄位。 元欄位是mapping對映中用啦描述文件本身資訊的欄位。 Identity meta-fields(文件標示元欄位) _index 文件所屬的索引。 多索引
演算法優化:最大欄位和,雙指標遍歷(n^2),分治法(nlogn),動態規劃(n)
最大欄位和,有點類似與最長公共子序列,這裡是求連續一段求和最大的一段,比如[-2,11,-4,-4,13,-5,-2]最大求和的連續一段為11,-4,-4,13,和為16. 最基本的雙針模型遍歷,兩個指標,分別代表最大和序列的起始和終止,演算法時間複雜度O(n^2) # 以下演算法時
MyBatis中五種成功對映資料庫欄位與實體類屬性不一致的解決方案
在Mybatis中,當根據某欄位查詢資料庫資訊時,如果資料庫欄位名與實體類屬性名稱不一致,查詢時,會出現賦值不上的情況,值為Null。本次將給出五種方案,其中方案三、四為推薦。例如:根據學號sno查詢學生資訊1.資料庫表student欄位名稱以及型別:2.資料庫表內容:3.實
Django 設定admin後臺的某一個model的欄位為富文字編輯器
Django 設定admin後臺的某一個model的欄位的型別為富文字編輯器,該富文字編輯器不但能夠上傳資料,還能夠上傳圖片,並能夠顯示圖片。 首先,在models.py中,建立一個models類,欄位的型別先設定成CharField class Article(models.Model
c# 對oracle插入資料欄位過長超出限制的解決方案
通過建立儲存過程的方法解決問題,如下所示,儲存過程的名字為insertGEO,有4個輸入引數,Childrens,RingInParent直接通過sql語句插入時,欄位值過長會報錯,所以先在資料庫中建立儲存過程 create or replace procedure insertGEO (v_i
讓天下沒有難用的資料庫 » innodb使用大欄位text,blob的一些優化建議
最近看到一些老應用,在表結構的設計上使用了text或者blob的欄位;其中一個應用,對blob欄位的依賴非常的嚴重,查詢和更新的頻率也是非常的高,單表的儲存空間已經達到了近100G,這個時候,應用其實已經被資料庫綁死了,任何應用或者查詢邏輯的變更幾乎成為不可能; 為了清楚大欄位對效能的影響,我們必須
POJ 1050 To the Max 最大子矩陣和(二維的最大欄位和)
傳送門: To the Max Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 52306 Accepted: 27646 Description Given a two-dimensional array of positive
@column 大欄位和瞬時欄位
大欄位 @Lob //對應Blob欄位型別 @Column(name = "PHOTO") private Serializable photo; @Lob //對應Clob欄位型別 @Column(name
sqlserver 大欄位儲存格式(一)
資料頁 資料頁是包含已經被新增到某個資料庫表中的使用者資料的結構,SQLServer有3種資料頁面,每個頁面都以一種不同的格式儲存資料。分別是用於行內資料、行溢位資料和LOB資料的頁面。 和其他型別的頁面一樣,資料頁面具有8KB的固定長度,它們主要由3個主要部分組成,頁首、資料行和行偏移陣列 頁首 每個
list 展示欄位過長小技巧
1、有內容的應該控制長度 <th class="center" style="width:350px;">資料簡介</th> <td> <c:choose> <c:when test="${fn:length(v