Das Beispiel dieses Artikels enthält die Methode des Datenbankverbindungspools von Java. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
Paket Com.Kyo.Connection; Java.util.Enumeration; IS // null. ConnectionParam Param) {this.param = param;} / ** * * den Namen der Testdatenbanktabelle der Testdatenbanktabelle erhalten. Der Name der Testtabelle * * * @param Testable * String -Testtabelle Name * / public voidTettable (String testtable) {this.Testtable = testtable;} / ** * 创建一个数据库连接池 , 连接池中的可用连接的 连接池中的可用连接的 连接池中的可用连接的 连接池中的可用连接的 连接池中的可用连接的 连接池中的可用连接的数量采用类成员 InitialConnections 中设置的值*/ public synchronisierte void createpool () löst Ausnahme aus. ) {return; )); in der InitialConnection einstellen. CreateConnections (this.param.getMinconConnection ()); * * * @Param numconnections * Die Anzahl der zu erstellenden Datenbanken */ private void createConnections (int numconnections) löst SQLEXception aus {// Erstellen Sie eine angegebene Anzahl von Datenbankverbindung für (int x = 0 0; x <numconnections; x ++ ) { / / / Ist die Anzahl der Datenbank, die mit dem Pool verbunden ist, das Maximum erreicht? Der Maximalwert erfolgt durch MaxConnections, was darauf hinweist, dass die Anzahl der Verbindungen, wenn MaxConnections // 0 oder negativ ist, keine Begrenzung gibt. // Wenn die Anzahl der Verbindungen das Maximum erreicht hat, wird der Ausgang zurückgezogen. If (this.param.getmaxConnection ()> 0 && this.connections.size ()> = this.param.getMaxConnection () {break;} // Fügen Der Pool (in der Vektorverbindung), try {Connections.Addelement (New PooledConnection (NewConnection ());} catch + e.getMessage ()); So erstellen ... ");}/ ** * * Erstellen Sie eine neue Datenbankverbindung und senden Sie sie an * * rturn zurück und senden Sie ein neues Neues zurück. Connect to Connection Conn = DriverManager.getConnection (this.param.geturl (), this .param.getUser (), this.param.getPassword ()); , Überprüfen Sie die Datenbank und erhalten Sie die Anzahl der von dieser Datenbank zulässigen Kundenverbindungen, um den Support // Connections.size () == 0 zu unterstützen, dass keine Verbindung zur Erstellung von (Verbindungen zu Verbindungen .Size () = besteht = 0) {Databasemetadata metadata = conn.getmetadata (); Die Grenze ist nicht bekannt // DriverMaxConnections ist eine Ganzzahl, die zurückgibt, was darauf hinweist, dass die Anzahl der Verbindungen im Verbindungspool Kunden ermöglicht, eine Verbindung zu der maximalen Anzahl von ifs herzustellen (DriverMaxConnections> 0 && param.getMaxConnection ()> DriverMaxConnection (DriverMaxConnection (driverMaxconnection S) (DriverMaxConnection (DriverMaxconnection S)> }} Return conn; // kehren Sie zu der neuen Datenbankverbindung zurück} /** * * Zurück eine verfügbare Datenbankverbindung, indem Sie die Funktion getFreeconnection () aufrufen, * * Wenn keine verfügbare Datenbankverbindung verfügbar ist und eine mehr Datenbankverbindung nicht sein kann Erstellt * * Um zu bauen, versuchen Sie, es wieder zu bekommen. * * @Return Rückgabe eines verfügbaren Datenbankverbindungsobjekts */ public synchronisierte Verbindung getConnection () löscht SQLEXception {// sicher, dass die Verbindung chi ji erstellt wird, wenn (connections == null) {null; Noch erstellt, dann null} conn = getfreeconnection () zurückgeben; das Warten (250); // gibt den verfügbaren Verbinden verfügbar}/** * * * Diese Funktion gibt eine verfügbare Datenbankverbindung über die angeschlossenen Poolvektorverbindungen zurück. * * * * * * * * * * * * Erstellen Sie mehrere Datenbankverbindungen und legen Sie sie in den Verbindungspool. * * Wenn noch alle Verbindungen verwendet werden, geben Sie NULL zurück * * * @return eine verfügbare Datenbankverbindung zurück. if (conn == null) {// Wenn im aktuellen Verbindungspool keine Verbindung vorhanden ist, erstellen Sie einige Verbindungen createConnections (this.param.getIncremenections ()); () = findFreeconnection (); Verfügbare Datenbankverbindung, * * Wenn keine verfügbare Verbindung verfügbar ist, retreiben Sie NULL * * @Return eine verfügbare Datenbankverbindung zurück. Objekte in der Verknüpfungspool -Aufzählung von Anschlüssen = Elemente (); Dieses Objekt ist nicht besetzt, erwerben Sie seine Datenbankverbindung und setzen Sie es als geschäftige conn = pconn.getConnection (); Erstellen Sie eine neue Verbindung, // und ersetzen Sie dieses nicht verfügbare Verbindungsobjekt. Verbindung! " + e.getMessage ()); null return;} pconn.setConnection (conn);} break; // eine verfügbare Verbindung finde, beenden}} return conn; // Zurück, um die verfügbare Verbindung}/ * * * * * * * * * Testen Sie, ob eine Verbindung verfügbar ist. *Rturn return true, um anzuzeigen, dass diese Verbindung verfügbar sein kann, false. Es bedeutet, dass Sie*/ private boolean testconnection (Verbindung conn) {try {// Bestimmen Sie fest, ob die Testtabelle vorhanden ist, wenn (testable.equals ("") {// Wenn die Testtabelle leer ist, versuchen Sie, diese angeschlossene SetAutoCommit ()) -Methode // zu verwenden, um festzustellen, ob die Verbindung verfügbar ist (diese Methode ist nur in einigen Datenbanken verfügbar, wenn sie nicht verfügbar ist, // eine Ausnahme werfen ). Conn.CreateStatement (); (Conn); ReturnConnection (Verbindung conn) {// Stellen Sie sicher, dass der Verbindungspool vorhanden ist. und es kann nicht an die Verbindung zur Verbindung zur Verbindung zur Verbindung zur Verbindung zum Verbindungspool zurückgegeben werden! "); Die Verbindungen im Verbindungsteich finden Sie das Verbindungsobjekt, wobei (Enteerate.hasmo Reelements ()) {PCONN = (PooledConnection) Enrumerate.NextElement () finden; = pconn.getConnection ()) {// Finden Sie diese Verbindung auf den Idle -Status pconn.setBusy (false); synchronisierte void refreshConnections () löst SQLEXception aus (// stellen Sie sicher, dass die Innovation des Verbindungspools vorhanden ist (C. Ontenctions == NULL) {System.out.println ("Der Verbindungspool existiert nicht, es kann nicht aktualisiert werden!"); } PooledConnection pconn = null; Ponn.isbusy ()) {Wait (5000); CloseConnection (pconn.getConnection ()); */ Public synchronisierte void Closeconnectionpool () löst SQLEXception aus {// stellen Sie sicher, dass der Verbindungspool existiert. Return;} PooledConnection pconn = null; )) {Wait (5000); Der Verbindungspool ist leere connections = null;} / **** deaktivieren Sie eine Datenbankverbindung ** @param Datenbankverbindung* / private void CloseConnection (Verbindungskontinuität) {try {conn.close ();} Catc e) {system.out.println ("Die Datenbankverbindungsfehler schließen:" + e.getMessage ());} /****, um das Programm auf die angegebenen Millisekunden ** @param zu warten, die die angegebene Nummer angegeben haben* / Private void wait (int msconds) {try {thread.sleep (msconds);} catch (InterruptedException e) {} / ** * * Interne Verwendung, um das angeschlossene Objekt im Verbindungspool zu speichern. Die Datenbank und das andere ist das Zeichen, dass die Verbindung verwendet wird. */ Class PooledConnection {Connection Connection = NULL; } // Rückkehr zur Verbindung der öffentlichen Verbindung getConnection () {Rückgabeverbindung;} // Setzen Sie dieses Objekt, verbinden Sie die öffentliche Sprach -Effekte (Verbindungsverbindung) {this.connection = connection; isbusy () {return tous;} // Die Verbindung des Einstellungsobjekts ist geschäftig.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.