NutzCN Logo
问答 oracle中的clob字段在java中如何处理?
发布于 938天前 作者 Mr.Hu 398 次浏览 复制 上一个帖子 下一个帖子
标签:

网上查了一些资料还是不太清楚,在nutz中是不是不能通过dao.fetch得到对象这样处理。比如我有一个obj是这样设置的

@Table("unit_realdata")
@Comment("*******")
public class PowerUnitRealData extends BasePojo{
private static final long serialVersionUID = 1L;
@Id
@Column("id")
@Comment("ID")
@ColDefine(type = ColType.INT, width = 16)
private long id;
@Column("powerunit_id")
@Comment("所属**ID")
@ColDefine(type = ColType.INT, width = 16)
private long puid;
@Column("da_time")
@Comment("采集时间")
@ColDefine(type = ColType.DATETIME)
private Date datime;
@Column("content")
@Comment("数据内容")
@ColDefine(type = ColType.TEXT)
protected char[] content;

//---------下边就是get和set方法
}

我在action中 Obj obj= dao().fetch(id)这样得到这个对象但是对应的 content却无法直接处理Oracle的clob字段,当然主要是我java的基础有点差,查了很多资料也没有找到方向,来个大神点拨一下吧,谢谢了。我该怎么才能将这个clob转成String,在html界面使用呢。
2 回复

自己找到方法了,java基础不好亏。下边是处理方法。
直接将 content类型设置为clob类就好了 private Clob content;
并且在对象中增加一个 private String con;用于存放content转换的String,便于在html界面使用
在aciton中
Obj obj = dao().fetch(id);
if (null != obj) {
Clob content = obj.getContent();
if(null != content){
Reader is = content.getCharacterStream();
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 执行循环将字符串全部取出付值给 StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
obj.setCon(sb.toString());
}
}
return obj;
嗯,方法可能笨了点,但是最终功能实现了。如果有更好的方法,欢迎各位大牛能不吝赐教。多谢多谢。

添加回复
请先登陆
回到顶部