为什么我在Junit单元测试里用c3p0连接数据库是成功的,但在另一个实现类里就获取不到数据库的资源,这两个的代码都一样啊在同一个项目里,c3p0的配置文件也相同,为什么会出错????????????

解决方案 »

  1.   

    jdbcurl写错了,认真比较吧
      

  2.   


    你看我的这个断点调试,一执行到dbutils的那个query就报错,前面数据库的连接已经连接上了
      

  3.   

    可能xml文件的dataSource没有加载c3p0.properties里面的参数,你直接写死试试
      

  4.   


    我又用原始的Connection和statement调试,结果还是有错,不是Dbutils的问题,问题就在数据库上的连接,可是为什么我的单元测试就没有任何问题呢
      

  5.   

     java.lang.NullPointerException
    at com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97)
    at com.mysql.fabric.jdbc.FabricMySQLDriver.acceptsURL(FabricMySQLDriver.java:93)
    at java.sql.DriverManager.getDriver(DriverManager.java:299)
    at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:240)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:131)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:156)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:145)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)这是服务器报错的信息唉真愁人这个错怎么都改不了