hibernate 写入 clob, Blob

这篇博客展示了如何使用Hibernate的HibernateSessionFactory创建Session并进行事务操作,以保存包含Clob和Blob数据的对象到数据库。具体操作包括设置Testuser对象的属性,如age、name、usertype等,然后利用Hibernate的createBlob和createClob方法创建Blob和Clob对象,将文件写入Blob,将字符串写入Clob,并最终保存到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.FileInputStream;
import java.io.OutputStream;

import org.hibernate.Hibernate;
import org.hibernate.LockMode;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.lob.SerializableBlob;
import org.hibernate.lob.SerializableClob;

import t_user.Testuser;

public class ReadOracleDemo {
public static void main(String[] args) throws Exception{
  // TODO Auto-generated method stub
  Session session=HibernateSessionFactory.getSession();
  Transaction tx=session.beginTransaction();
  Testuser user=new Testuser();
  user.setAge((long)24);
  user.setId((long)5);
  user.setName("xiaoxin");
  user.setUsertype((long)2);
  user.setVersion((long)1);
  user.setPhoto(Hibernate.createBlob(new byte[1]));
  user.setResume(Hibernate.createClob(" "));
  session.save(user);
  session.flush();

  session.refresh(user, LockMode.UPGRADE);

  SerializableBlob sb = (SerializableBlob)user.getPhoto();
  java.sql.Blob wrapblob = sb.getWrappedBlob();
  oracle.sql.BLOB blob = (oracle.sql.BLOB) wrapblob;
  OutputStream output = blob.getBinaryOutputStream();
  FileInputStream input=new FileInputStream("E:/PHOTO/baby/c0.jpg");
  byte b []=new byte[80*1024];
  input.read(b);

  output.write(b);
  input.close();
  output.close();

  SerializableClob sc=(SerializableClob)user.getResume();
  java.sql.Clob wrapclob=sc.getWrappedClob();
  oracle.sql.CLOB clob=(oracle.sql.CLOB)wrapclob;
  java.io.Writer writer=clob.getCharacterOutputStream();
  writer.write("This is the second clob");
  session.save(user);
  tx.commit();
  }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值