BLOB/CLOB类型在HIBERNATE中的应用

原创 2006年05月29日 15:00:00

    为什么需要clob/blob对象?
         在实际的项目开发过程当中,有时候需要存取比较大的数据。而在oracle中,varchar2的长度不能够满足需求,因此就得需要用到clob/blob。

    BLOB/CLOB在HIBERNATE中的如何应用?
       
   为了更好的理解,我们举一个文章发布的例子做为讨论。

          实体类(POJO)MessageArticle

          ........................
          private Clob content1;
          private String content;

         public String getContent() {
          return content;
        }

    public void setContent(String content) {
        this.content = content;
    }

    public Clob getContent1() {
        return content1;
    }

    public void setContent1(Clob content1) {
        this.content1 = content1;
    }
    ........................

   配置文件(*.hbm.xml)

   <property name="content1" type="clob">
            <column name="CONTENT"  />
        </property>

   CURD实现(保存和修改):
      String content = request.getParameter("content");
      MessageArticle article1 = new MessageArticle();
      ............................
      Integer articleid = (Integer)getHibernateTemplate().save(article1);

   try {
        MessageArticle article = (MessageArticle)getHibernateTemplate().load(MessageArticle.class, articleid, LockMode.UPGRADE);
        oracle.sql.CLOB clob = (oracle.sql.CLOB) ((SerializableClob)article.getContent1()).getWrappedClob();       
        java.io.Writer pw = clob.getCharacterOutputStream();
        pw.write(content);
        pw.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch(IOException ex){
            ex.printStackTrace();
        }

     //读取
     ........................
    MessageArticle article = (MessageArticle)getHibernateTemplate().load(MessageArticle.class, articleid, LockMode.UPGRADE);
            Clob clob = article.getContent1();
            if (clob != null) {
                String content = clob.getSubString(1, (int) clob.length());
                article.setContent(content);
            }

相关文章推荐

Hibernate的Annotation中实体BLOB、CLOB类型的注解

在Hibernate Annotation中,实体BLOB、CLOB类型的注解与普通的实体属性有些不同,具体操作如下:  BLOB类型的属性声明为byte[]或者java.sql.B...

Hibernate读写Clob和Blob类型字段

数据库脚本: create table testcb(id varchar(32) primary key,name varchar(32),photo blob,description t...

关于Clob类型在Hibernate中的应用小结

转载于:http://www.yesadmin.com/356/113692/index.html   文档主要以本人在一个类似日志系统的项目中对“会议记要”模块进行修改时所遇到的问题为背景,描述...
  • zgmzyr
  • zgmzyr
  • 2012年02月13日 18:00
  • 2566

Hibernate对Blob,Clob的操作

  • 2007年11月21日 10:55
  • 5KB
  • 下载

关于Oracle的BLOB、CLOB字段的操作方法(分JDBC和Hibernate两种)

文章出处:http://muzixiang.iteye.com/blog/916263 注意:本文采用JDK1.6 和 Oracle ojdbc6 驱动,基于ORALCE 9I 数据库,...

hibernate之Blob,Clob字段映射

hibernate3学习笔记(十四)|Blob、Clob

在Hibernate中,可以直接对Blob、Clob作映射。 DDL如下: CREATE TABLE user (    id INT(11) NOT NULL auto_incremen...

Hibernate+Spring彻底搞定Clob、Blob的存取

Hibernate+Spring彻底搞定Clob、Blob的存取 摘要:本文通过一个实例讲述如何通过Spring2+Hibernate3来快捷操作数据库中的Lob字段。 环境:Oracle10g、Sr...
  • he90227
  • he90227
  • 2014年07月24日 16:55
  • 716
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BLOB/CLOB类型在HIBERNATE中的应用
举报原因:
原因补充:

(最多只允许输入30个字)