BlobObj.java
package com.model;
import java.sql.Blob;
public class BlobObj {
private int id;
private Blob img;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Blob getImg() {
return img;
}
public void setImg(Blob img) {
this.img = img;
}
}
BlobObj.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.model">
<class name="BlobObj" table="blobobj">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="img" column="img" type="blob"></property>
</class>
</hibernate-mapping>
单元测试
@Test
public void t(){
Session session = HibernateUtil.getInstance().getSession();
session.beginTransaction();
File f = new File("F:\\66.jpg");
FileInputStream fi = null;
try {
fi = new FileInputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BlobObj obj = new BlobObj();
obj.setImg(session.getLobHelper().createBlob(fi, f.length()));
session.save(obj);
try {
fi.close();
} catch (IOException e) {
e.printStackTrace();
}
session.getTransaction().commit();
session.close();
}
@Test
public void tt() throws SQLException, IOException{
Session session = HibernateUtil.getInstance().getSession();
session.beginTransaction();
BlobObj obj = (BlobObj) session.get(BlobObj.class, 1);
Blob b = obj.getImg();
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\c.jpg"));
BufferedInputStream bis = new BufferedInputStream(b.getBinaryStream());
byte[] buf = new byte[1024];
int len = 0;
while((len = bis.read(buf))>0){
bos.write(buf,0,len);
}
bis.close();
bos.close();
session.getTransaction().commit();
session.close();
}