关于BLOB数据类型插入ORACLE数据库的操作(二)

2014-11-24 00:57:15 · 作者: · 浏览: 15
{ return sex; }

public void setSex(char sex) { this.sex = sex; }

public float getWeight() { return weight; }

public void setWeight(float weight) { this.weight = weight; }

public Blob getImage() { return image; }

public void setImage(Blob image) { this.image = image;}

}

这是Cat.hbm.xml

java代码:

< xml version="1.0" >

下面是完整的用Hibernate写入Blob的例子,相比JDBC,已经简单轻松多了,也不用写那些Oracle特殊的sql了:

java代码:

package com.fankai;

import java.sql.Blob;

import net.sf.hibernate.*;

import oracle.sql.*;

import java.io.*;

public class TestCatHibernate {

public static void testBlob() {

Session s = null;

byte[] buffer = new byte[1];

buffer[0] = 1;

try {

SessionFactory sf = HibernateSessionFactory.getSessionFactory();

s = sf.openSession();

Transaction tx = s.beginTransaction();

Cat c = new Cat();

c.setName("Robbin");

c.setImage(Hibernate.createBlob(buffer));

s.save(c);

s.flush();

s.refresh(c, LockMode.UPGRADE);

BLOB blob = (BLOB) c.getImage();

OutputStream out = blob.getBinaryOutputStream();

String fileName = "oraclejdbc.jar";

File f = new File(fileName);

FileInputStream fin = new FileInputStream(f);

int count = -1, total = 0;

byte[] data = new byte[(int)fin.available()];

fin.read(data);

out.write(data);

fin.close();

out.close();

s.flush();

tx.commit();

} catch (Exception e) {

System.out.println(e.getMessage());

} finally {

if (s != null)

try {

s.close();

} catch (Exception e) {}

}

}

}