hibernate 写入 clob, Blob

来源:互联网 发布:2016cctv网络春晚 编辑:程序博客网 时间:2024/05/20 14:17

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();
  }

}

 

原创粉丝点击