hibernate oracle blob数据类型的处理
                 289434497
                 13年前
            
                    hibernate oracle blob数据类型的处理
  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();
  }