今天项目中需要用到Clob,自己以前虽然对此有些了解,但并没有写过代码.而Google的结果很多却没什么和自己的项目比较相近的.算了自己搞吧.
    工程中使用SSH frameworks,因此着手点无非就是对Hibernate进行ORM mapping.  
    下面给出我自己的配置.比较简单,但很实用,通过测试.运行无问题.

POJO类中内容字段:content 声明:

private java.sql.Clob content;

foo.hbm.xml 映射文件片段
<property name="content" column="content" type="clob" />

将字符串转换为Clob对象
Clob clob = Hibernate.createClob("要存取的内容");
obj.setContent(clob);

这样便完成了存的操作.

从Clob中获取字符串
由于Clob特殊的存储格式,因此必须使用IO来进行处理.
我写了个通用的静态方法,用来进行转换
 1public static String clob2String(Clob clob) {
 2        StringBuilder strBuilder = new StringBuilder("");
 3        BufferedReader reader=null;
 4        if (null != clob) {
 5            try {
 6                reader = new BufferedReader(clob.getCharacterStream());
 7            } catch (SQLException e) {
 8                e.printStackTrace();
 9            }
10            String st = "";
11            try {
12                while (null != (st = reader.readLine())) {
13                    strBuilder.append(st+"\r\n");
14                }
15            } catch (IOException e) {
16                e.printStackTrace();
17            }
18        }
19        return strBuilder.toString();
20    }

打完收工!
有错误或更好的实现方法思路请指正.谢谢

Feedback

# re: 在hibernate中使用Clob存取大容量字符串  回复  更多评论   

2009-06-19 16:30 by 张三
当字符串过长会出现clob为空的现象

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 1, trackbacks - 0, articles - 1

Copyright © 冯振川