hibernate对 oracle 的blob数据类型的处置
hibernate对 oracle 的blob数据类型的处理
oracle数据库建表语句
Stu.java文件
剩余部分略去.....
Stu.hbm.xml文件如下:
在main方法中测试:
保存数据到数据库:
读取数据库数据:
oracle数据库建表语句
create table stu ( id number(2), name varchar2(16), filename varchar2(64), filedata BLOB, primary key(id) );
Stu.java文件
public class Stu implements java.io.Serializable { // Fields private Byte id; private String name; private String filename; private byte[] filedata; //此处理将其属性类型设为byte[] // Constructors /** default constructor */ public Stu() { }
剩余部分略去.....
Stu.hbm.xml文件如下:
<hibernate-mapping> <class name="com.aoyou.mapping.Stu" table="STU" schema="LIXIN03080"> <id name="id" type="java.lang.Byte"> <column name="ID" precision="2" scale="0" /> <generator class="assigned" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="16" /> </property> <property name="filename" type="java.lang.String"> <column name="FILENAME" length="64" /> </property> <hibernate-mapping> <class name="com.aoyou.mapping.Stu" table="STU" schema="LIXIN03080"> <id name="id" type="java.lang.Byte"> <column name="ID" precision="2" scale="0" /> <generator class="assigned" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="16" /> </property> <property name="filename" type="java.lang.String"> <column name="FILENAME" length="64" /> </property> <!-- 注意下面filedata的type为binary --> <property name="filedata" type="binary"> <column name="FILEDATA" /> </property> </class> </hibernate-mapping> <property name="filedata" type="binary"> <column name="FILEDATA" /> </property> </class> </hibernate-mapping>
在main方法中测试:
保存数据到数据库:
public static void main(String[] args) throws IOException{ Session session = new Configuration().configure().buildSessionFactory().openSession(); Transaction t = session.beginTransaction(); File file = new File("D:\\购物网站\\二期\\数据库设计.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); Stu stu = new Stu(); stu.setId(2); stu.setName("mary"); stu.setFilename("数据清单"); String content = ""; String temp = ""; while((temp = br.readLine()) != null){ content += temp; } br.close(); stu.setFiledata(content.getBytes()); session.save(stu); t.commit(); }
读取数据库数据:
public static void main(String[] args) throws IOException{ Session session = new Configuration().configure().buildSessionFactory().openSession(); Transaction t = session.beginTransaction(); String hql = " from Stu "; Query query = session.createQuery(hql); List list = query.list(); if(list != null){ Stu stu = (Stu)list.get(0); System.out.println(stu.getId()); System.out.println(stu.getName()); System.out.println(stu.getFilename()); byte[] b = stu.getFiledata(); System.out.print(new String(b, 0, b.length)); } t.commit(); }