2017-07-20 7 views
0

Oracle DB接続とBoneCPを使用するスタンドアロンのJavaプログラム[アプリケーション・サーバーとセッションなし]があります。私は別のメソッドから別のクエリを実行する必要があり、DB接続/プールが各呼び出しで作成されることは望ましくありません。スタンドアロンJavaプログラムでのBoneCP接続の再利用

接続プールが作成されるDBManagerクラスがあります。さまざまなクラス/メソッドから複数のクエリを実行するために作成された接続オブジェクトを、どのように再利用できるかを知りたいと思います。

try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return; 
    } 

    try { 

     // setup the connection pool 
     BoneCPConfig config = new BoneCPConfig(); 
     config.setJdbcUrl("jdbc:oracle:thin:@"+prop.getProperty(DB_HOST)+":"+prop.getProperty(DB_PORT)+":"+prop.getProperty(DB_INSTANCE)); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb 
     config.setUsername(prop.getProperty(APP_DB_USER)); 
     config.setPassword(prop.getProperty(APP_DB_PWD)); 
     config.setMinConnectionsPerPartition(5); 
     config.setMaxConnectionsPerPartition(10); 
     config.setPartitionCount(1); 
     connectionPool = new BoneCP(config); // setup the connection pool 

     connection = connectionPool.getConnection(); // fetch a connection 

私はその静的クラスはCPが毎回作成されますない場合でも/このクラスのオブジェクトを呼び出す場合は?ちょうど私は一度だけ接続を作成して接続オブジェクトを再利用できますか?

ありがとうございます。

+0

私はちょうどhttps://stackoverflow.com/questions/6944810/using-bonecp-handling-connections-from-the-pool?rq=1 "に関する質問を見ましたが、私はちょうど正しい方法私のクラスをシングルトンとして使用することです。または他のより良いオプションがそこにあります。 –

答えて

0

シングルトンクラスを使用することをお勧めします。

次善策は、サーバー(たとえば、tomcat)でJavaプログラムを実行し、サーバーがdb接続プールを処理するようにすることです。

また、hikaricp接続プールは、非常にクイックでクリーンな接続プールの実装として試してみることもできます。

関連する問題