Java Hibernate Oracle存储大文件
来源:互联网 发布:在淘宝网购物流程 编辑:程序博客网 时间:2024/06/05 21:18
http://howtodoinjava.com/2013/08/30/hibernate-example-of-insertselect-blob-from-database/
Lets take an example, in which, I am inserting “test.png” image from windows C drive to database (MySQL). Then I will read the image data again from database and store it to different location.
Hibernate entity
Please note, I have declared the data field as byte[].<span style="font-size:14px;">@Entity@Table(name = "TBL_IMAGES")public class ImageWrapper implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", unique = true, nullable = false) private Integer id; @Column(name = "IMAGE_NAME", unique = false, nullable = false, length = 100) private String imageName; @Column(name = "DATA", unique = false, nullable = false, length = 100000) private byte[] data; //Getters and Setters}</span>
Inserting blob data into database
Let’s look at the code:Session session = HibernateUtil.getSessionFactory().openSession();session.beginTransaction(); File file = new File("C:\test.png");byte[] imageData = new byte[(int) file.length()]; try { FileInputStream fileInputStream = new FileInputStream(file); fileInputStream.read(imageData); fileInputStream.close();} catch (Exception e) { e.printStackTrace();} ImageWrapper image = new ImageWrapper();image.setImageName("test.jpeg");image.setData(imageData); session.save(image); //Save the data session.getTransaction().commit();HibernateUtil.shutdown();
After executing above code, you can verify that a table into database is created if it’s not already there. And one BLOB column is created to hold the image data.
Reading the blob data from database
This is simple, and in fact you do not need to do anything extra. Above entity definition will work fine.Session session = HibernateUtil.getSessionFactory().openSession();session.beginTransaction(); ImageWrapper imgNew = (ImageWrapper)session.get(ImageWrapper.class, 1);byte[] bAvatar = imgNew.getData(); try{ FileOutputStream fos = new FileOutputStream("C:\temp\test.png"); fos.write(bAvatar); fos.close();}catch(Exception e){ e.printStackTrace();} session.getTransaction().commit();HibernateUtil.shutdown();
Hibernate configuration
For reference, This is the configuration I am using for this example:
hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">create</property> <mapping class="hibernate.test.dto.ImageWrapper"></mapping> </session-factory></hibernate-configuration>
Also below is the code for HibernateUtil.java
HibernateUtil.java
public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); @SuppressWarnings("deprecation") private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new AnnotationConfiguration().configure(new File ("D:\Latest Setup\eclipse_juno_workspace\hibernate-test-project\hibernate.cgf.xml")) .buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { getSessionFactory().close(); }}
0 0
- Java Hibernate Oracle存储大文件
- java 调用Oracle 存储过程 Jdbc/Hibernate
- hibernate --oracle ---大数据
- Oracle的存储的三大物理文件
- Oracle存储过程保存大文件或者图片
- 在Oracle中存储图片、影像等大文件
- 大文件存储
- hibernate 调用oracle存储过程
- hibernate调用oracle存储过程
- hibernate调用oracle存储过程
- Hibernate 调用ORACLE 存储过程
- 大文件导入oracle
- hibernate中大对象的存储
- 大文件的读取、存储
- MongoDB大文件存储流程
- oracle java存储过程
- java,hibernate调用存储过程
- [JAVA] Hibernate 大数据类型映射
- cocos2d-x 3.8.1 基本游戏运行流程图
- (转)HttpClient学习
- 【转载】MIMO技术杂谈(三):知己知彼,百战不殆--信道信息的获取和应用
- ShareSDK源码分析及部分代码实现
- iOS 9适配-bitcode, https, URL scheme, 找不到.dylib
- Java Hibernate Oracle存储大文件
- 开发纪录开始日!
- ClassCastException深入分析与JVM
- Android异步消息处理机制完全解析
- SAP 开票类型的确定
- Redis集群配置
- shrio教程初级(六)shiro整合springmvc
- iOS 常用打开操作(打开网页,打电话,发邮件,发信息等)
- 欢迎使用CSDN-markdown编辑器