MySQL Connection richtig herstellen. Wie ?

der_sharky

Mitglied
Hallo zusammen,
ich programmiere zurzeit eine Java Swing Anwendung, die mit der MySQL verbunden ist. Das Problem: Wenn ich auf JButton mehrmals klicke dann kommf der Fehler:User 'XXXXXX' has exceeded the 'max_user_connections' resource (current value: 5).
Hinter JButton steht einen Event und damit werden Daten in der Datenbank eingefügt(INSERT).
In der Anwendung habe ich auch eine JTable. Beide Elemente JButton und JTable sind mit eigene MySQL Connection mit der Datenbank verbunden, sowie mit eigenen Klassen. Ich vermute hier liegt das Problem. Vielleicht sollte ich für die MySQL Connection eigene Klasse erstellen und die Element JButton und JTable später zuweisen. Hat jemanden eine Idee, wie ich das Problem lösen kann ?
Vielen Dank
 
Hi Flown, danke für die schnelle Reaktion.
Meine Frage: Wie kann ich nur eine Connection für alle JElements erstellen ? Wo soll ich sie speichern( vllt. eigene Klasse) ? Wie können später alle JElements auf sie zugreifen.
Danke
 
Ich habe mein Problem so gelöst:
Ich habe eine extra Klasse erstellt wo ich die DB Connection (Singleton) gepackt habe:

Code:
import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {

    static Connection conn = null;

    private DBConnection() {

    }

    public static Connection getDBConnection() {
        try {
            if (conn == null) {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://XXXXXXX/", "XXXX", "XXXXXX");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return conn;

    }

}

Danach konnten die anderen Klassen durch Connection con = DBConnection.getDBConnection(); auf die DB Connection Klasse zugreifen. Jetz werden keine neue Verbindungen aufgebaut wenn ich z.B. einen JButton klicke.
Es werde nur neue Verbindungen aufgebaut wenn ich die komplette Anwendung parallel wieder starte.
 
Sollte in der Realität nicht Connection-Pooling die sauberste Methode sein, Datenbank-Verbindungen innerhalb einer Anwendung zu verwalten?
Dazu gibt es schon mehre, fertige Implementierungen, die man nutzen kann. Wenn ich das richtig sehe ist deine einfache Singleton Klasse nicht MT-tauglich.
 
Naja. Die Anwendung hört sich jetzt nicht nach stark frequentierten Queries, Multithreading und DB Belastung an. Geschweige davon wissen wir nicht mal ob der Driver das überhaupt unterstützt.
 

Zurück
Oben