Hibernate操作Blob数据
来源:互联网 发布:mac os maven环境变量 编辑:程序博客网 时间:2024/06/06 08:59
首先看数据库,数据库中新建一个BlobTable表,表中有两个字段,一个id(主键)一个picture字段是Blob类型字段。然后使用Hibernate向该数据库中写入和读取数据
在POJO类中picture属性用的是Blob类型数据。
下面看操作源码
package dao;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.math.BigDecimal;import java.sql.Blob;import org.hibernate.LobHelper;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import Factory.HibernateSessionFactory;import entity.Blobtable;public class BlobDao {private Session session = null;private Transaction tran = null;public BlobDao(){this.session = HibernateSessionFactory.getSession();}public void saveBlob(Blobtable bigdate,String path) throws IOException{/*InputStream in = this.getClass().getResourceAsStream(path);byte[] bytes = new byte[in.available()];in.read(bytes);in.close();*/File file = new File(path);FileInputStream fis = new FileInputStream(file);byte[] bytes = new byte[fis.available()];fis.read(bytes);LobHelper lh = session.getLobHelper();bigdate.setPicture(lh.createBlob(bytes));tran = session.beginTransaction();try{session.save(bigdate);tran.commit();System.out.println("插入成功!");}catch(Exception e){System.out.println("插入失败!");tran.rollback();}finally{HibernateSessionFactory.closeSession();fis.close();}}public void getBlob(BigDecimal id,String targetpath) throws Exception{String hql = "From Blobtable where id = ?";Query query = session.createQuery(hql);query.setBigDecimal(0, id);Blobtable bt = (Blobtable) query.uniqueResult();Blob image = bt.getPicture();InputStream in = image.getBinaryStream();OutputStream os = new FileOutputStream(targetpath);int n = -1;while((n=in.read())!=-1){os.write(n);}in.close();os.close();}}
package Test;import java.io.IOException;import java.math.BigDecimal;import dao.BlobDao;import entity.Blobtable;public class Test {public static void main(String[] args) {BlobDao bb = new BlobDao();Blobtable bt = new Blobtable();bt.setId(new BigDecimal(5));try {String path = "f:\\a.jpg";bb.saveBlob(bt, path);} catch (IOException e) {e.printStackTrace();}BlobDao bd = new BlobDao();try {bd.getBlob(new BigDecimal(1), "e:\\a.jpg");System.out.println("写出成功!");} catch (Exception e) {e.printStackTrace();}}}
0 0
- Hibernate操作Blob数据
- hibernate操作mysql的blob数据
- Hibernate操作Blob
- Hibernate 操作Blob Clob
- Hibernate 操作Blob Clob
- 用Hibernate操作Oracle Blob
- jdbc+hibernate操纵blob数据
- jdbc操作BLOB类型数据
- MySQL BLOB类型数据操作
- MySQL BLOB类型数据操作
- python 数据库blob数据操作
- hibernate对clob和blob的操作
- 用hibernate操作oracle的blob字段
- Hibernate对BLOB CLOB操作详解
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JSON.stringify 语法实例讲解
- 致我终将逝去的青春
- vim使用技巧
- drp——Web组件交互的转发、包含
- CentOS-6.3安装配置JDK-8
- Hibernate操作Blob数据
- register_chrdev()与register_chrdev_region()
- 虚函数与虚继承寻踪
- Java基础知识之系统命令调用、序列化、JDO、匿名内部类
- JQuery 根据字节数截取字符串()
- String,StringBuffer与StringBuilder的区别??
- sso 安全方案
- Android中Bitmap和Drawable
- Camera driver&V4L2驱动架构介绍