![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| Spring+Struts+Hibernate 架构中对Oracle9i中clob字段的处理之--新增数据篇 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-7-8 ![]() |
||||||
|
在最近的项目中,要使用oracle9i数据库,而且用到clob字段进行数据存取。
以下是一个对clob字段插入数据库的处理。 前提: 1.ParProperty ppro 中有一个getBz()的方法,返回String 2.UInfo ui是表对象,有一个pasw属性,是java.sql.Clob类型,对应的xml文件中是这样定义的: <property name="pasw" type="java.sql.Clob"> <column name="PASW" /> </property>思路: 1.由于不能直接插入数据长度太大的数据,因此第一步先插入一个假的(较短)的无意义的字符串,并提交到数据库。 2.接着将刚插入的数据“定位”,马上将真正的有意义的数据替换刚才插入的假数据,并更新到数据库。
![]() public void saveClob(ParProperty ppro)...{ UInfo ui = new UInfo(); Session hsession = getHibernateTemplate().getSessionFactory().openSession(); Transaction tx = hsession.beginTransaction(); //第一次插入假clob数据 tx.begin(); String content = " "; Clob clob = Hibernate.createClob(content); ui.setPasw(clob); hsession.save(ui); tx.commit(); //第二次插入真clob数据 tx.begin(); hsession.refresh(ui, LockMode.UPGRADE); //锁定位置 SerializableClob sclob = (SerializableClob) ui.getPasw(); clob = sclob.getWrappedClob(); CLOB clob2 = (CLOB) clob; Writer writer;![]() try ...{ writer = clob2.getCharacterOutputStream(); writer.write(ppro.getBz()); writer.close();![]() } catch (Exception e) ...{ // TODO Auto-generated catch block e.printStackTrace(); } 小结:先插入“假”,再替换成“真”,这是对付clob的一个方法。
本文来源:http://blog.csdn.net/orangekent/archive/2007/06/28/1670826.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|