无法通过jconn4.jar / Sybase驱动程序版本7和Mybatis框架更新Sybase数据库中的多个记录

问题描述 投票:1回答:1

我正在使用Mybatis框架进行数据库持久化,通过Jconn4.jar连接到Sybase数据库并在JBOSS 7应用程序服务器上部署我的应用程序。

1)Mybatis映射器 - CustomerMapper.xml

<update id="updateCustomerMapping" parameterType="java.util.Map" statementType="CALLABLE">
    {call sp_update_customer( #{account_customer,jdbcType=CHAR,mode=IN}, 
    #{customer_code,jdbcType=CHAR,mode=IN} )}
</update>

2)Sybase程序

CREATE PROCEDURE dbo.sp_update_customer
(
    @account_customer varchar(10), 
    @customer_code varchar(12)=NULL 
)

3)JBoss 7独立配置

  <datasource jta="true" jndi-name="java:/SybaseDS" pool-name="SybaseDS" enabled="true" use-ccm="true">
        <connection-url>jdbc:sybase:Tds:****:1000/****?chained=false</connection-url>
        <driver-class>com.sybase.jdbc4.jdbc.SybDriver</driver-class>
        <driver>sybase</driver>
        <security>
            <user-name>****</user-name>
            <password>****</password>
        </security>
        <validation>
           <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker"/>
           <background-validation>true</background-validation>
           <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter"/>
        </validation>
  </datasource>

添加/更新/删除单个记录与Jconn4.jar一起使用,但添加/更新/删除多个记录不起作用。 我怀疑问题是mybatis映射器中的jdbcType = CHAR xml与jconn4.jar不兼容。我也尝试过jdbcType = VARCHAR但仍无法解决此问题。 相同的映射器配置(jdbcType = CHAR)适用于较旧版本的Sybase驱动程序 - jconn3.jar。

请帮助解决此错误。

java jboss7.x sybase mybatis jconnect
1个回答
0
投票

我使用jconn4-7.jar遇到了同样的问题。但如果我使用jconn4.jar就可以了。所以你可以尝试使用这个。

© www.soinside.com 2019 - 2024. All rights reserved.