frank oo java

我爱oo,我爱java。http://oofrank.blogchina.com

My Links

Blog统计

公告

欢迎到 oofrank@blogchina 来 QQ:421057986 email:oofrank@163.com
www.flickr.com
oofrank@flickr with my S9500

Free Download Manager
Free Download Manager

文章

收藏

相册

IT

other

存档


正在读取评论……


最近在DB2环境下使用iBATIS时碰到一点问题:当值(参数)对象包含空值(null)的参数属

性并传递给iBATIS进行Insert、Update操作时,会发生异常,不能保存成功,此时数据

库字段是可以为空的。
跟据别人的提示,我也看了iBATIS的代码,发现iBATIS使用的是prepareStatement进行

的sql执行,在没有显示mapping定义数据类型的情况下,首先使用参数值的java类型决

定传输给prepareStatement的参数类型,然后使用 Type.OTHER 进行输入,如果参数是

值是null,则只能使用 Type.OTHER 了。在DB2的driver下,该方式不能正确执行。

要解决这个问题,就要在mapping中显示声明参数(列)的类型:
1、对于bean参数进行可以如下声明:
<insert  id="xxxxInsert" parameterClass="xxx.xxxx.Xxxxx">
    <sql>
         insert into XXXX (XXXX) VALUES (#xxxx:VARCHAR#)
    </sql>
</insert>

2、对于map参数 怎可以使用parameterMap定义每个参数的类型
    <parameterMap class="xxx.xxxx.Xxxxx" id="xxxxMap">
           <parameter  property="xxxx" typeName="VARCHAR"  />
    </parameterMap>

对于可以使用什么类型名,可以看看代码....Types就可以.



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=679495


[点击此处收藏本文]  发表于2006年01月01日 12:43 PM




正在读取评论……
大名
网址
验证码
评论