我用ibatis  数据源是C3P0 连接oracle没有任何问题,连接DB2就报错,我本地手写数据库连接连DB2还能连上,请大仙们帮忙看看啊  谢谢 ,以下是报错信息
[DEBUG](JakartaCommonsLoggingImpl.java:27)2012-06-08 15:57:17 {conn-100012} Connection
[DEBUG](JakartaCommonsLoggingImpl.java:27)2012-06-08 15:57:17 {conn-100012} Preparing Statement:     select count(*) from sp_emissions   
[DEBUG](JakartaCommonsLoggingImpl.java:27)2012-06-08 15:57:17 {pstm-100013} Executing Statement:     select count(*) from sp_emissions   
[DEBUG](JakartaCommonsLoggingImpl.java:27)2012-06-08 15:57:17 {pstm-100013} Parameters: []
[DEBUG](JakartaCommonsLoggingImpl.java:27)2012-06-08 15:57:17 {pstm-100013} Types: []
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-99999];   
--- The error occurred in com/feng/biz/emissions/ibatis/Emissions.xml.  
--- The error occurred while applying a result map.  
--- Check the Emissions.queryEmissionsCounts-AutoResultMap.  
--- Check the result mapping for the '1' property.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/feng/biz/emissions/ibatis/Emissions.xml.  
--- The error occurred while applying a result map.  
--- Check the Emissions.queryEmissionsCounts-AutoResultMap.  
--- Check the result mapping for the '1' property.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/feng/biz/emissions/ibatis/Emissions.xml.  
--- The error occurred while applying a result map.  
--- Check the Emissions.queryEmissionsCounts-AutoResultMap.  
--- Check the result mapping for the '1' property.  
--- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120)
Caused by: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver
at com.ibm.db2.jcc.b.s.supportsMultipleResultSets(s.java:1850)
at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.supportsMultipleResultSets(NewProxyDatabaseMetaData.java:1072)

解决方案 »

  1.   

    Caused by: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver看起来应该是你用的JDBC驱动的版本跟DB2不匹配,建议去下载最新的DB2的JDBC驱动。然后先写个Java类用手工JDBC连接的方式来进行测试,测试通过后再上连接池。
      

  2.   

    可能是C3P0的驱动包和DB2的驱动包不兼容吧  我用的是c3p0-0.9.1.1,请问下他兼容哪个DB2包
      

  3.   

    --- Cause: com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver
    你说能连上,用相同的sql测试了么?
      

  4.   

    测试不充分。你手写的时,得到Connection后,调用: getMetaData() 函数,比如:DatabaseMetaData meta = cn.getMetaData();
    System.out.println("是否支持多数据集:" + meta.supportsMultipleResultSets());
      

  5.   

    System.out.println("是否支持多数据集:" + meta.supportsMultipleResultSets());
    果然报错了,N ,我换个数据库驱动就好了是么?
    com.ibm.db2.jcc.b.SqlException: DatabaseMetaData information is not known for server DB2/NTSQL09070 by this version of JDBC driver
    at com.ibm.db2.jcc.b.s.supportsMultipleResultSets(s.java:1850)
    at com.feng.biz.test.util.Test.main(Test.java:59)
      

  6.   

    看看你DB2的版本,然后去找个该版本所对应的最新版JDBC驱动,最好是IBM官网下载。
      

  7.   

    我在CSDN上下了一个  现在好使了  但是测试确获得不到了,不过没关系,ibatis能用就行,太谢谢你了,