1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| package com.Achi.orm.sample02;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import oracle.sql.BLOB;
import org.hibernate.lob.SerializableBlob;
import org.hibernate.Hibernate;
import org.hibernate.LockMode;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class StartHibernate_insertBlob {
public static void main(String args[]) {
File file = null;
FileInputStream fileInputStream = null;
String imagePath = "C:\\test_Blob_03.JPG";
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
file = new File(imagePath);
fileInputStream = new FileInputStream(file);
TestUser3 bean = new TestUser3();
bean.setImage(Hibernate.createBlob(new byte[1]));
bean.setName("Achi");
Configuration config = new Configuration().configure();
sessionFactory = (SessionFactory) config.buildSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
session.save(bean);
session.flush();
session.refresh(bean, LockMode.UPGRADE);
SerializableBlob sBlob = (SerializableBlob)bean.getImage();
BLOB blob = (BLOB)sBlob.getWrappedBlob();
OutputStream os = blob.getBinaryOutputStream();
byte[] data = new byte[(int)fileInputStream.available()];
fileInputStream.read(data);
os.write(data);
session.flush();
tx.commit();
fileInputStream.close();
os.close();
session.close();
sessionFactory.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
|