hibernate操作Oracle CLOB
1、数据库驱动为10g的驱动,就可以像操作String一样操作CLOB了
HIBERNATE配置加一行:
<propertyname="hibernate.connection.SetBigStringTryClob">true</property>
HIBERNATE映射CLOB字段写为:
<propertyname="content"type="text">
<columnname="CONTENT"/>
</property>
相应的VO持久化类属性为String
2、数据库驱动为早前版本的驱动,可采用如下方法。
写操作:
try
{
hdao.beginTransaction();
hdao.save(resume);
hdao.getSession().flush();
hdao.getSession().refresh(resume,LockMode.UPGRADE);
SerializableClobslob=(SerializableClob)resume.getContent();
Clobwrapclob=slob.getWrappedClob();
CLOBclob=(CLOB)wrapclob;
Writerpw=clob.getCharacterOutputStream();
//content为要保存的内容
pw.write(content);
pw.close();
hdao.endTransaction();
returntrue;
}
catch(Exceptione)
{
log.error("保存文件出错!);
log.error(e);
e.printStackTrace();
returnfalse;
}
读操作:
Clobclob=resume.getContent();
Stringcontent="";
if(clob!=null)
{
content=clob.getSubString(1,(int)clob.length());
}
转自:http://blog.csdn.net/freeglad/article/details/3746318