栏目:Java Web(<--点此查看更多)Java Web 开发相关技术及框架,JSP|Servlet|Javabean|SSH|EJB|HTML|CSS|JavaScript等
  • Hibernate 对 Oracle CLOB 的处理

  • Mon Feb 18 21:24:23 CST 2013 编程者 我要收藏(...) 评论 ...
  • import java.lang.reflect.Proxy; import org.hibernate.engine.jdbc.SerializableClobProxy; import oracle.sql.CLOB;
  • import java.lang.reflect.Proxy;
    import org.hibernate.engine.jdbc.SerializableClobProxy;
    import oracle.sql.CLOB;
    /**
    * 按查询条件,获取重要信息公告数据列表
    *
    * @return
    * @throws Exception
    */
    public String toDetail() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        // 重要信息公告板
        noticeBoardDesc = ipmNoticeBoardService.getNoticeBoardDetail(id).list();
        SerializableClobProxy cDetail = null;
        String sDetail = null;
        for (Map noticeMap : noticeBoardDesc) {
            cDetail = (SerializableClobProxy)Proxy.getInvocationHandler(noticeMap.get("DETAIL"));
            sDetail = Clob2String((CLOB)cDetail.getWrappedClob());
            noticeMap.put("DETAIL", sDetail);
        }
        return "success";
    }
    /**
    * clob to string 大字符串格式转换STRING
    *
    * @param clob
    * @return 大字符串
    *
    */
    public String Clob2String(CLOB clob) {// Clob转换成String 的方法
        String content = null;
        StringBuffer stringBuf = new StringBuffer();
        try {
            int length = 0;
            Reader inStream = clob.getCharacterStream(); // 取得大字侧段对象数据输出流
            char[] buffer = new char[10];
            while ((length = inStream.read(buffer)) != -1) // 读取数据库 //每10个10个读取
            {
                for (int i = 0; i < length; i++) {
                    stringBuf.append(buffer[i]);
                }
            }
            inStream.close();
            content = stringBuf.toString();
        } catch (Exception ex) {
            System.out.println("ClobUtil.Clob2String:" + ex.getMessage());
        }
        return content;
    }
  • 信息来源:http://bianchengzhe.com (举报这篇文章)
  • 好评(...) 中评(...) 差评(...)