hibernate clob mysql_Hibernate操作Clob类型数据

在POJO中字符串大对象可以声明成一个java.lang.String或java.sql.Clob类型。 当程序从数据库中加载Clob类型数据时,仅仅加载了一个Clob类型的数据的逻辑指针。我们需要通过使用Clob.getCaracterStream()方法得到Clob类型的数据输入流之后才能获取大对象数据

在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("读取失败!");

}

}

}

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值