2017-07-20 4 views
0

Ich habe ein eigenständiges Java-Programm [Keine Anwendungsserver/-sitzung beteiligt] mit Oracle DB-Verbindung und BoneCP. Ich muss verschiedene Abfragen von verschiedenen Methoden ausführen, und ich möchte nicht, dass die DB-Verbindung/der Pool bei jedem Aufruf erstellt wird.Wiederverwendung der BoneCP-Verbindung im eigenständigen Java-Programm

Ich habe eine DBManager-Klasse, in der der Verbindungspool erstellt wird. Ich würde gerne wissen, wie genau ich das Verbindungsobjekt wiederverwenden kann, das erstellt wurde, um mehrere Abfragen von verschiedenen Klassen/Methoden auszuführen.

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 

Wenn ich das Objekt dieser Klasse aufrufen/auch wenn es eine statische Klasse ist, wird der CP nicht jedes Mal erstellt? Kann ich genau das Verbindungsobjekt wiederverwenden, indem ich die Verbindung nur einmal erstelle?

Vielen Dank im Voraus.

+0

Ich gerade sah https://stackoverflow.com/questions/6944810/using-bonecp-handling-connections-from-the-pool?rq=1 "verwandte Frage. Aber ich wollte nur, wenn der richtige Weg zu bestätigen ist es, meine Klasse als Singleton oder andere bessere Optionen zu verwenden. –

Antwort

0

Ihre beste Option ist die Verwendung einer Singleton-Klasse.

Die nächste beste Option ist, Ihr Java-Programm auf einem Server (z. B. Tomcat) auszuführen und den Server den DB-Verbindungspool für Sie behandeln zu lassen.

Sie können auch hikaricp Verbindung Pool versuchen, wie es ist eine sehr schnelle und saubere Verbindung Pool-Implementierung!

Verwandte Themen