您的位置:首页 > 数据库 > Oracle

如何在Hibernate当中操作Oracle Clob

2005-12-15 01:10 477 查看
之前做的项目都是比较简单,jsp + javabean操作数据库,其中也做过对Oracle的Clob字段进行操作。学习Hibernate,Spring已经一年多了,如何使用Hibernate还操作Oracle的Clob字段,说真的,还没有试过,之前只是看过相应的文档而已,而没有实际的经验。

之前使用JDBC操作Clob基本上就是先插入一个空字符到Clob字段,再把刚刚插入的数据读出来,然后更新Clob字段。Hibernate的操作基本上也是如此。

插入操作:

    ......
    article.setContentClob(Hibernate.createClob(" "));
   session.save(article);
   session.flush();
   session.refresh(article, LockMode.UPGRADE);
   oracle.sql.CLOB clob = (oracle.sql.CLOB) article.getContentClob();
   Writer writer = clob.getCharacterOutputStream();
   writer.write(article.getContent());
   writer.flush();
   writer.close();
   ......
读取操作:

   ......
    article = (Article)session.get(Article.class, id);
   java.sql.Clob clob = article.getContentClob();
   if(null != clob){
    String clobString = clob.getSubString(1, (int) clob.length());
    article.setContent(clobString);
   }
   ......
其中,在Article的实体当中有两个字段,定义如下:

......
private java.sql.Clob contentClob;
private String content;
......
hbm文件定义如下:

......

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

......
contentClob是mapping到数据库的Clob字段
而content是处理clob的值,该值主要是负责表单数据与实体之间的对应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息