关闭

BLOB/CLOB类型在HIBERNATE中的应用

720人阅读 评论(0) 收藏 举报

    为什么需要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);
            }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21670次
    • 积分:342
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:1篇
    • 译文:0篇
    • 评论:4条
    最新评论
    常用网站
    学校网站