ibatis oracle 长字符串 bug

ibatis : ibatis-2.3.4.726.jar
<update id="update" parameterClass="org.kimnin.test4000.Test4000PO">
        update test4000 set str=#str#    where id=#id#
</update>

<insert id="insert" parameterClass="org.kimnin.test4000.Test4000PO">
        insert into test4000(id ,str)values( #id# ,#str#)
</insert>

   public void test4000insert() throws Throwable {
      Test4000PO test = new Test4000PO();
      test.setId(3);
      test.setStr(_1000 + _1000 + _1000 + _1000);//_1000是长度为1k的的字符串
      System.out.println(test.getStr().length());
      sqlMap.insert("insert", test);
   }
  
   public void test4000update() throws Throwable {
      Test4000PO test = new Test4000PO();
      test.setId(2);
      test.setStr(_1000 + _1000 + _1000 + _1000);
      System.out.println(test.getStr().length());
      sqlMap.update("update", test);
   }
  
在Oranxo-3.00.01.jar
<property name="JDBC.Driver" value="com.inet.ora.OraDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:inetora:10.224.56.42:1521:webdb" />
           
在驱动为:
Oranxo-3.00.01.jar
使用配置文件:
<property name="JDBC.Driver" value="com.inet.ora.OraDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:inetora:10.224.56.42:1521:webdb" />
insert 成功
update 失败

在驱动为:
Oranxo-3.00.01.jar
使用jdbc方式:
insert 成功
update 成功                   

在驱动为:
ojdbc14.jar
orai18n.jar
使用配置文件:
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@10.224.56.42:1521:webdb" />
insert 成功
update 成功                   

Mysql环境下使用配置文件:
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test" />
insert 成功
update 成功


结论
iBATIES在使用Oranxo-3.00.01.jar配合上有问题.
有可能是调用驱动,实现update功能时,调用方式不对导致update在字符串长度为大于1333个时出现问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值