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

相关推荐