資料庫中BLOB格式在SSI架構中的使用

2021-09-09 07:30:59 字數 1718 閱讀 9466

目錄

blob 簡介

ssi架構簡介

blob 使用

blob 接收

blob 轉換

blob (binary large object),二進位製大物件,是乙個可以儲存二進位制檔案的容器。簡言之,是資料庫中儲存較大資料時使用的資料格式.

ssi架構是spring(調配),struts(分發),ibatis(資料庫)三者共同使用的簡稱.

在entity中使用byte陣列去接收傳遞過來的資料.

private byte blobdata;

public byte getblobdata()

public void setblobdata(byte blobdata)

在sqlmap中的resultmap中使用binary型別去接收查詢出的資料.

整體思路就是將二進位制轉換為你之前儲存進去的格式,因為在這塊儲存進去的時候就是使用四位十六進製制代表乙個數字,所以整體思路如下表.

資料格式

資料資料解釋

資料操作

原資料257

十轉十六

乙個四位十六進製制

0101

直接中間切開

兩個二位十六進製制

01         

01分別十六轉二

兩個八位二進位制

00000001 

00000001

資料庫中儲存格式

二轉位元組流

byte位元組陣列

1            

1entity中接收格式

位元組流轉十六

四個一位十六進製制

0 1 0 1

乙個四位十六進製制

0101

十六轉十

十進位制(原資料)

257從資料庫到能用的十進位制如下**

//得到位元組陣列

byte bytearray =******data.get(0).getentity().getblobdata();

//將位元組陣列轉化為十六進製制

string hexarray =bytearraytohexarray(bytearray);

//十六進製制轉十進位制

listresultdata = new arraylist();

int index;

string fourhex;//四位十六進製制

string stringonedecimal;//string型別的十進位制(除以100並保留兩位小數)

double onedecimal;//原始十進位制

for(index = 0;index < hexarray.length(); index+=4)

private static final char hex_char = ;

//得到十六進製制

public static string bytearraytohexarray(byte bytes) else

//相當於轉化為兩位十六進製制,實際是轉化為兩個一位十六進製制,但是兩個在一起才有十六進製制的意義

buf[index++] = hex_char[a / 16];

buf[index++] = hex_char[a % 16];

}return new string(buf);

}

pb在資料庫中訪問blob型別資料

一 首先要寫好兩個函式,分別是檔案的讀取與寫入 參考 pb中讀寫檔案的函式 二 儲存檔案 li value getfileopenname 選擇檔案 ls docname,ls named if li value 1 then if f readfile lb fj,ls docname 1 the...

資料庫中的blob是什麼型別?

blob binary large object 二進位製大物件,是乙個可以儲存二進位制檔案的容器。在計算機中,blob常常是資料庫中用來儲存二進位制檔案的字段型別。根據eric raymond的說法,處理blob的主要思想就是讓檔案處理器 如資料庫管理器 不去理會檔案是什麼,而是關心如何去處理它。...

C 實現MySQL資料庫中的blob資料儲存與取出

在mysql資料庫中,有一種blob資料型別,用來儲存檔案。c 程式語言操作mysql資料庫需要使用mysql官方元件mysql.data.dll。現在說一說如何實現blob型別資料的操作 寫入資料庫 filestream f1 new filestream filename1,filemode.o...