最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Hibernate操作Blob数据

来源:动视网 责编:小采 时间:2020-11-09 14:46:26
文档

Hibernate操作Blob数据

Hibernate操作Blob数据:首先看数据库,数据库中新建一个BlobTable表,表中有两个字段,一个id(主键)一个picture字段是Blob类型字段。然后使用Hibernate向该数据库中写入和读取数据 在POJO类中picture属性用的是Blob类型数据。 下面看操作源码 package dao;impor
推荐度:
导读Hibernate操作Blob数据:首先看数据库,数据库中新建一个BlobTable表,表中有两个字段,一个id(主键)一个picture字段是Blob类型字段。然后使用Hibernate向该数据库中写入和读取数据 在POJO类中picture属性用的是Blob类型数据。 下面看操作源码 package dao;impor


首先看数据库,数据库中新建一个BlobTable表,表中有两个字段,一个id(主键)一个picture字段是Blob类型字段。然后使用Hibernate向该数据库中写入和读取数据 在POJO类中picture属性用的是Blob类型数据。 下面看操作源码 package dao;import java.io.File;im

首先看数据库,数据库中新建一个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();
	}	
	}
}

文档

Hibernate操作Blob数据

Hibernate操作Blob数据:首先看数据库,数据库中新建一个BlobTable表,表中有两个字段,一个id(主键)一个picture字段是Blob类型字段。然后使用Hibernate向该数据库中写入和读取数据 在POJO类中picture属性用的是Blob类型数据。 下面看操作源码 package dao;impor
推荐度:
标签: 操作 使用 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top