数据库里有个字段是BLOB类型,用来存文件内容的。
现在我要往里面写东西,但是由于用了hibernate ,数据库的所有表项都被对象化了,所以我必须自己生成得到一个Blob对象。
请问怎么把String的内容转换成BLob类型的? 目前只知道用字符流,可是不会写。
------解决方案--------------------
- Java code
InputStream String2InputStream(String str) { ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes()); return stream; }
------解决方案--------------------
Blob blob=rs.getBlob("CONTENT");
BufferedReader BlobStream = new BufferedReader(Blob.getCharacterStream());
StringBuffer stringBuffer = new StringBuffer();
int nchars = 0;
char[] buffer = new char[10];
while((nchars = BlobStream.read(buffer)) != -1 )
stringBuffer.append(buffer, 0, nchars);
BlobStream.close();
strDbText = Util.strTrim(stringBuffer.toString());
方法二:
BufferedReader reader = new BufferedReader(Blob.getCharacterStream());
String bb=reader.readLine();
while(bb!=null){
content += bb;
bb = reader.readLine();
}
------解决方案--------------------
在你hibernate的实体bean里的那个String字段上加上一个@Blob注解就行了...