网站地图
  
  高级搜索
  首页   技术论坛   博客 派计划   产品中心   资源中心   银弹在线   商城  

 
  本文的标签
EOS知识库 (收录443篇)EOSServer (收录121篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

clob字段使用经验


发布时间:2007-06-18 19:06:02 作者:cservice 出处: 语言:中文 阅读次数:1441

【适用范围】

 EOS5.x  

【内容】

和oracle clob类型字段pk了2天,终于搞定。附件是我仿照bl_filetoclob整理的将大字符串(String)保存到clob字段的运算逻辑。下载地址:

附件下载

注意事项:

1、java.sql.Clob 与oracle.sql.CLOB的区别。java1.4自带的jdbc Clob接口比jdbc驱动的CLOB接口少了很多方法。建议使用Oracle的JDBC的API。 如果要用Oracle的JDBC的API还需要在studio中将oracle的驱动引进来。不然会报错。

2、注意此方法中关于事务的处理。 flag = conn.getAutoCommit(); if(flag) conn.setAutoCommit(false); 这段代码是我反编译eosbizlets-found.jar包下面的com.primeton.eos.bizlets.database.OracleLOBManipulator的时候找到的。我的理解是如果 调用此运算逻辑的业务逻辑中有事务的话,那么此运算逻辑的AutoCommit就设为false。运算事务由业务逻辑的事务进行统一控制。如果调用运算逻辑 的业务逻辑没有用到事务,那么AutoCommit就为true。不知道这样理解是否正确。

3. 我写完这个运算逻辑后发现原来com.primeton.eos.bizlets.database.OracleLOBManipulator下面有一个StringToCLOB方法,所要做的事情基本是一样的。

4. 参考资料 http://www.javaeye.com/topic/254,帖子很不错。

5.在weblogic9.2环境中使用时,曾经遇到ClassCastException的错误:
java.lang.ClassCastException: weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB incompatible with oracle.sql.CLOB
at com.primeton.webwf.util.ClobToDBManager.BL_updateClob(ClobToDBManager.java:126) ... 37 more
上网一查,如果用weblogic的数据库连接池,那么返回的数据类型经过了一次包装也就是返回weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB,因此出现类型转换错误。于是结合com.primeton.eos.bizlets.database.OracleLOBManipulator中的方法对运算逻辑进行了调整。
因为调用到了weblogic的包,因此直接放到studio中会出现错误,因此需要在studio中将\bea\weblogic81\server\lib路径下的weblogic.jar引入。请不要将weblogic.jar放
在如primeton5.1.2\jboss-3.2.5\server\default\lib下面,否则会出错。
 

【备注】

1)根据注意事项的第五条说明,2007年12月7日更新了附件代码

2) Clob字段可以正常导入数据实体,默认的EOS数据类型为“长字符串”,需要改为“字符串大对象”;

3) 使用BL_insertEntity可以正常插入数据,使用BL_queryEntityAllWithPageExt等查询构件也能正常的将内容查出。我们发现,Oracle数据库不能一次性往clob字段里插入过多的数据量,如果插入的数据量超过一定限度,数据库会抛错“Io exception: Connection reset”,这时,还是要换stringtoclob的方案,如果是SQL Server或DB2,则没有这个问题。

4) 修改时不能使用BL_updateEntity,会导致clob字段内容丢失的情况,应该使用BL_StringToCLOB或者是上述的BL方法,推荐使用这个BL方法。

5)使用这个BL方法时,注意参数中的主键值事先要存在,即这个BL方法是根据一个已有的主键值做更新操作。

 评论 查看全部评论
 
asdf 于 2007-08-28
中国石材超市网是全球最大的石材价格石材资讯石材产品的发布地.由福建上百家石材企业共同创建,是中国石材行业价格最透明的商城.
中国石材超市网 主要有石材产品展示石材最新产品石材稀有产品石材特价产品石材行业资讯石材展会信息石材安装技术石材常识石材客户中心等几个大类,石材产品主要包含:大理石花岗岩马赛克砂岩人造石文化石等,对各种石材都有全球最透明的价格,最详细的介绍,最全的石材信息。是石材行业的一个里程碑。中国石材超市网

 

声明:本栏目转载文字、造型、样式、图形及程序如有来自网络,版权归原作者或首发媒体所有,欢迎任何个人访问或者转载,若有作者及出处有误,请来信说明,我们将及时更正。