『壹』 java String類型和blob類型轉換
如果你的數據真的是 String ,那按理就是用 Clob 嘛。
Blob 主要用於二進制內容,比如圖片,附件。
如果保持資料庫表結構不變的話,用 blob 也行,但你需要在讀取和寫入兩頭明確地指定相同的字元集,否則讀取這個還原過程會得到不到期望的結果。只要我們用支持這種字元的字元集理論上來說,只要編碼和解碼的過程使用相同的字元集就不會失真,如果字元集本身不支持這個字元(比如你拿一個只有康熙字典中才有的古漢字用 GB2312 字元集去處理就會失真,而用 UTF8 就可能正常,因為只要這個字元真的能被輸入法錄入到電腦中基本上它就已經表示有辦法能處理它)。
PreparedStatement 中有 setBlob (JDBC 4.0) 或 setBinaryStream (早期) 方法。但你需要測試你使用的驅動程序是什麼版本的與資料庫是否匹配。
『貳』 java String類型轉換為Blob類型
java String類型轉換為Blob類型的方法:
由於Blob類型存放的是位元組數組,利用String的getBytes()方法獲得該字元串的位元組數組(注意編碼方式),之後利用hibernate工具存入Blob即可。
publicstaticBlobgetBlogValue(StringstrValue,StringcharsetName){
BlobblobValue=null;
try{
//charset為「字元編碼方式」
byte[]bytes=strValue.getBytes(charsetName);
System.out.println("byte[]:"+bytes);
blobValue=Hibernate.createBlob(bytes);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnblobValue;
}