级别: 中级
【程序编程相关:Microsoft .Net 数据应用程】wayne beaton 【推荐阅读:Visual Studio .Net 的】
【扩展信息:DB2 Data Connections】 ibm software services for websphere, ibm 加拿大 2004 年 7 月 本文向您展示如何使用 websphere application server 转换器来解决把字符型大型对象列映射到 ejb 容器管理持久性实体 bean 字段时会出的问题,以及进行其他的转换或变形,比如更改在数据库与 java 之间传递的字符串值的格式.引言
一位顾客最近向我提出了他们在把应用程序从 bea weblogic server 移植到 ibm® websphere® application server v5.1 时遇到的一个问题.他们现有的数据库使用几个字符型大型对象(clob)类型列来表示一些字符串值,在他们将这些列映射到企业 java™ persistence,(cmp)实体 bean 字段时遇到了一些奇怪的运行时错误.sql 中的 clob 数据类型用于表示大量的字符数据,特别适合那些过大或者不适合用 char 或 varchar 类型表示的数据.在将使用 cmp 的 ejb 实体 bean 中的一个持久性字段映射到一个 clob 列时,websphere application server 将该字段串行读取与写入到列中.如果串行化是所需要的,就大功告成,但如果不是,则需要做一些工作了.
串行化问题
websphere application server 串行化一个持久性字段的内容,而不考虑该字段的类型.即使一个字符串值(它可以自然地适应 clob 列)被串行化——也就是说,将该字符串对象的对象字节表示保存在数据库中,而不仅仅保存该字符串的内容.当从列中将值读回到持久性字段时,串行化对象被反串行化.以下代码片断展示了 websphere application server v5.1 生成的将一个 java.lang.string 值储存到一个 clob 列的代码: ... 下一页