BLOB欄位資料讀取

2021-08-25 03:40:07 字數 1013 閱讀 8151

因為開發的時候公司的專案,所以只能說明不能截圖了,在這裡請大家諒解。

blob這個字段,首先是存大資料的,本人倒是不建議在資料庫中存入那麼大的資料,影響伺服器效能。而且如果表沒有採用分布儲存,沒有考慮維護,一段時間就會很大,本人一點見解,表大小超過1g的容量時候,明顯影響資料讀取速度。這個扯的有點遠了,回歸正題。

我了解的系統是用hibernate 讀取大容量的blob,中間採用spring進行管理。

<bean id="lobhandler" class="org.springframework.jdbc.support.lob.defaultlobhandler" lazy-init="true" />
並將其對映到transactionmaanger中

<bean id="sessionfactory" class="org.springframework.orm.hibernate3.localsessionfactorybean"> 

<property name="lobhandler" ref="lobhandler"/>

</bean>

在程式中 如有以下物件

public class user
hibernate 讀取blob欄位

blob blob=user.getinfo();

if(blob.length>0)

這樣就轉換過來了。

我之所以要寫 hibernate 的讀取 是要跟ibatis做對照

因為在ibatis 中查詢返回list 當然blob欄位也是被查詢出來了。

我除錯了以下發現 list中裝的就是hashmap 乙個是blob欄位,乙個當然是值,仔細在看發現就是bytes格式看來不用轉了。直接就可以用

//這裡是偽**只表達大意

iterator it=list.iterator();

while(it.hashnext())

分塊讀取Blob欄位資料 Oracle

試過了mssql的分塊讀取blob欄位,又嘗試在oracle下完成,發現還是可行的。首先建立乙個儲存過程 create or replace procedure pro get blob i pkgid in integer,檔案id i mount in integer,複製資料數量 byte i...

分塊讀取Blob欄位資料 MSSQL

mssql中提供了乙個功能,能夠分塊讀取blob欄位中的資料,寫了乙個儲存過程 如下 create procedure pro get file data pkg id int,ver varchar 50 start int,count int as begin 定義指標變數,必須為varbina...

顯示table欄位資料

select case when a.colorder 1 then d.name else end 表名,a.colorder 字段序號,a.name 欄位名,case when columnproperty a.id,a.name,isidentity 1 then else end 標識,ca...