1

エラーが発生しています:

java.sql.SQLException: Configuration file not found
        at org.apache.commons.dbcp.PoolingDriver.getConnectionPool(PoolingDriver.java:137)
        at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:175)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:270)
        at com.test.sql.Test.main(Model.java:95)

接続を確認しましたが、問題ありません。それは単なるプールエラーです。プールを使用せずに (connectionFactory以下を使用して) 直接接続を開くと、接続してステートメントを実行し、結果セットを取得できます。

プールを作成して使用するコード:

    AbandonedConfig cfg = new AbandonedConfig ();
    cfg.setLogAbandoned (true);
    cfg.setRemoveAbandonedTimeout (5);
    cfg.setRemoveAbandoned (true);
    GenericObjectPool connectionPool = new AbandonedObjectPool(null, cfg);
    connectionPool.setTestWhileIdle (true);
    connectionPool.setTestOnBorrow (true);
    connectionPool.setTestOnReturn (true);
    connectionPool.setMaxActive (5);
    connectionPool.setMaxWait (5000);
    ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://localhost:3306/Test?user=testuser&password=password",null);
    PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true, cfg);
    poolableConnectionFactory.setValidationQuery ("SELECT 1");

    Class.forName("org.apache.commons.dbcp.PoolingDriver");
    PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
    driver.registerPool("test_pool",connectionPool);


    //This throws the error
    Connection conn = DriverManager.getConnection( "jdbc:apache:commons:dbcp:" );

    //This does too
    //Connection conn = DriverManager.getConnection( "jdbc:apache:commons:dbcp:Test" );
4

1 に答える 1

1

問題は、私がどのように接続を求めていたかにあります。Apache のドライバー URL の下にあるプールを要求する必要があります。

Connection conn = DriverManager.getConnection( 
     "jdbc:apache:commons:dbcp:test_pool"
);

したがって、形式は次のとおりです。

"jdbc:apache:commons:dbcp:" + TheNameOfYourPool
于 2016-05-02T22:44:18.140 に答える