domain的字段:
private Clob content;
hibernate的xml映射
<property name="content" type="clob">
<column name="CONTENT" >
<comment>内容</comment>
</column>
</property>
首先是保存:
LobHelper lobHelper = session.getLobHelper();
Clob clob = lobHelper.createClob(content);
news.setContent(clob);
content是前台传递的内容。这样我们就可以保存这个对象了。
下面是读取:
News news = newsDAO.get(id);
Clob clob = news.getContent();
return StringUtils.clobToString(clob);
我们查询到对应的对象,然后获取到clob,然后传入一个静态方法,从而得到字符串。
该静态方法的代码如下:
public static String clobToString(Clob clob) {
String reString = "";
Reader is = null;
try {
is = clob.getCharacterStream();
} catch (SQLException e) {
e.printStackTrace();
}
// 得到流
BufferedReader br = new BufferedReader(is);
String s = null;
try {
s = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer sb = new StringBuffer();
while (s != null) {
//执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
try {
s = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
reString = sb.toString();
return reString;
}
结束。