先回顾下以前的版本:
1、Hibernate 3.2是采用SerializableBlob类来处理Blob对象的。
看数据库中的image存储类型是BLOB。
相应的Hibernate 3.2处理代码:
public byte[] getPic(String isbn) throws Exception {
byte[] pic = null;
String sql = "select pic from tbook where isbn = ?";
this.openConnection();
SQLQuery q = this.session.createSQLQuery(sql);
q.setString(0, isbn);
Iterator it = q.list().iterator();
while(it.hasNext()){
Object obj=it.next();
SerializableBlob blob= (SerializableBlob)obj;
pic=blob.getBytes(1, (int)blob.length());
}
return pic;
}
之后后
1、在Hibernate3.5之后去除掉了SerializableBlob这个类,但同时又增加了SerializableBlobProxy来处理BLOB字段值。
Blob字段值是Hibernate返回的Blob对象实际上是代理类Serializable