欢迎投稿

今日深度:

Hibernate操作Clob类型数据,hibernateclob类型

Hibernate操作Clob类型数据,hibernateclob类型


在POJO中字符串大对象可以声明成一个java.lang.String或java.sql.Clob类型。

当程序从数据库中加载Clob类型数据时,仅仅加载了一个Clob类型的数据的逻辑指针。我们需要通过使用Clob.getCaracterStream()方法得到Clob类型的数据输入流之后才能获取大对象数据。

看下面具体代码

package dao;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.math.BigDecimal;
import java.sql.Clob;
import java.sql.SQLException;

import org.hibernate.LobHelper;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import entity.Clobtable;
import Factory.HibernateSessionFactory;

public class ClobDao {
	private Session session = null;
	private Transaction tran = null;
	public ClobDao() {
		session = HibernateSessionFactory.getSession();
	}
	
	
	public void saveClob(BigDecimal id,String content){
		Clobtable ct = new Clobtable();
		ct.setId(id);
		LobHelper lh = session.getLobHelper();
		ct.setContent(lh.createClob(content));
		tran = session.beginTransaction();
		try{
			session.save(ct);
			tran.commit();
			System.out.println("插入成功!");
		}catch(Exception e){
			tran.rollback();
			System.out.println("插入失败");
		}
	}
	
	public void getClob(BigDecimal id){
		String hql = "from Clobtable where id = ?";
		Query query = session.createQuery(hql);
		query.setBigDecimal(0, id);
		Clobtable ct = (Clobtable) query.uniqueResult();
		Clob clob = ct.getContent();
		try {
			Reader reader = clob.getCharacterStream();
			BufferedReader br = new BufferedReader(reader);
			String content = br.readLine();
			System.out.println(content);
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("读取失败!");
		} catch (IOException e) {
			System.out.println("读取失败!");
		}
		
	}
}


 


hibernate操作clob问题

1. 设置xml字段映射关系字段类型为blob
<property type="blob">
<column />
</property>
2. 设置实体BEAN中对应字段为java.sql.Blob
private Blob picture;
public Blob getPicture() {
return this.picture;
}
public void setPicture(Blob picture) {
this.picture = picture;
}
你上我BLOG上看一下,上面有操作方式,也是Hibernate2.0
 

hibernate操作clob问题

最好实体类的类型和数据库里面的是一样的。。。而且的话,像这样的 我觉得意义不大。希望考虑下。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3341.html NewsArticle Hibernate操作Clob类型数据,hibernateclob类型 在POJO中字符串大对象可以声明成一个java.lang.String或java.sql.Clob类型。 当程序从数据库中加载Clob类型数据时,仅仅加载了一个Clob类型的数据的逻...
评论暂时关闭