JNDI, DBCP, JDBC und MySQL am Beispiel [geschlossen]Java

Java-Forum
Guest
 JNDI, DBCP, JDBC und MySQL am Beispiel [geschlossen]

Post by Guest »

Ich versuche:
  • Eine MySQL-Datenquelle aus JNDI zu lesen
  • Diese JNDI-Datenquelle zu verwenden Konfigurieren Sie einen DBCP-Verbindungspool sowie meine JDBC-Verbindung.
  • Führen Sie eine SQL-Anweisung mit JDBC aus
  • Höflich schließen (Verbindung wieder zum Pool freigeben, schließen). alles andere raus, etc.)
Dieser Code wird häufig ausgelöst (es ist ein einfaches Protokollierungssystem für eine App) und somit alles, was kann über mehrere SQL-Ausführungen hinweg offen gehalten werden soll, sollte vorzugsweise offen bleiben (um den Aufwand für das Öffnen/Schließen usw. zu reduzieren).
Hier ist mein bester Versuch:

Code: Select all

    try {
// 1. Obtain the dbLogger datasource from JNDI.
Context context = new InitialContext();
DataSource logDatabaseDS = (DataSource)context.lookup(logDatabaseJNDI);

// 2. Configure the connection pool with my JNDI datasource.
// HOW?

// 3. Obtain a connection from the pool.
// HOW?

// 4. Use this connection to fire a JDBC INSERT.
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("urlFromJNDI",
"userFromJNDI", "passwordFromJNDI");

PreparedStatement statement = conn.prepareStatement(InsertSQL);
statement.setString(1, appName);
statement.setLong(2, timestamp);
statement.setString(3, logLevel);

statement.executeUpdate();

// 5. Release the borrowed connection back to the pool.
// HOW?
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
Ich glaube, dass die Grundeinstellungen korrekt sind. Bin mir nur nicht sicher:

[*]Wie man den DBCP-Pool mithilfe von JNDI-Set-Eigenschaften (wie maxIdle, maxWait usw.) konfiguriert. )
[*]Leihen Sie sich auf effiziente Weise eine Verbindung aus dem DBCP-Pool aus (damit dieser Code Dutzende/Hunderte Male pro Sekunde ausgelöst werden kann und keine Ressourcen verloren gehen)
< li>Fügen Sie die Verbindungszeichenfolge-URL, den Benutzernamen und das Passwort aus dem ein JNDI-Datenquelle in die Methode DriverManager.getConnection(...)
[*]Geben Sie die Verbindung höflich/korrekt wieder in den Pool frei.

Und wenn ich diesen Prozess nicht richtig eingerichtet habe, korrigieren Sie mich bitte zunächst hinsichtlich des allgemeinen Ansatzes!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post