M
mas
Gast
Hallo liebe Leute!
Ich hab da eine Frage zur folgendem Sachverhalt.
In meiner Applikation existiert eine Klasse DBverbindung.java
Diese Verwende ich um auf eine lokale MySQL Datenbank zuzugreifen.
Erstelle ich eine Instanz dieser Klasse:
geschieht im Konstruktor dieser Klasse folgendes:
Erst wird der Treiber geladen mit Class.forName("Treibername");
Dann wird eine verbindung aufgebaut:
Diese Verbindung wird in einer Instanzvariable der Klasse gespeichert.
Nun kann ich einfach ueberd die Methoden der Klasse auf die Db zugreifen:
Bsp:
Nun die Frage:
Ich habe aus faulheit damit angefangen an beliebigen Stellen meines Programmes, immer wenn ich auf die
Datenbank zugreifen will. Neue Instanzen dieser Klasse zu erstellen.
Also immerwieder:
und dann mit den Methoden auf die Db zugreifen.
Mein Logik würde mir sagen, dass dies eine schlechte Methode ist, da ja jedesmal der Konstruktor eigentlich
neue Verbindungen zur DB erstellt. Ich arbeite ja da mit unterschiedlichen Instanzen von DBverbindung.
Eigentlich wollte ich das ändern, und DBverbindung statisch machen, bzw so, dass nur ein einziges Objekt von der Klasse existieren kann-> Somit hätte ich auch nur eine Verbindung. Zum Schluss koennte ich diese einzelne Verbindung schließen.
Nach längeren Tests scheint es mir aber, als ob meine schlechte Lösung auch ginge. Bzw. ich komme nie zu einer
Meldung wie Max Connections erreicht oder sowas.
Kann es sein, dass meine Appliaktion doch nur eine Verbindung zur Datenbank hält obwohl ich zahlreiche Instanzen
von DBverbindung erzeuge? Oder hatte ich einfach nur Glück bis jetzt.?
Vielleicht weiß ja wer, wo und wie man live (z.B in der Console) die gerade bestehenden Verbindungen zu meiner SQL-DB sehen kann.
Danke für Infos
lg mas
Ich hab da eine Frage zur folgendem Sachverhalt.
In meiner Applikation existiert eine Klasse DBverbindung.java
Diese Verwende ich um auf eine lokale MySQL Datenbank zuzugreifen.
Erstelle ich eine Instanz dieser Klasse:
Code:
DBverbinfung db=new DBverbindung();
geschieht im Konstruktor dieser Klasse folgendes:
Erst wird der Treiber geladen mit Class.forName("Treibername");
Dann wird eine verbindung aufgebaut:
Code:
this.conn=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/xx","testuser","testpassword");
Diese Verbindung wird in einer Instanzvariable der Klasse gespeichert.
Nun kann ich einfach ueberd die Methoden der Klasse auf die Db zugreifen:
Bsp:
Code:
Vector Irgendwas=db.getIrgendWas();
Nun die Frage:
Ich habe aus faulheit damit angefangen an beliebigen Stellen meines Programmes, immer wenn ich auf die
Datenbank zugreifen will. Neue Instanzen dieser Klasse zu erstellen.
Also immerwieder:
Code:
DBverbinfung db=new DBverbindung();
Mein Logik würde mir sagen, dass dies eine schlechte Methode ist, da ja jedesmal der Konstruktor eigentlich
neue Verbindungen zur DB erstellt. Ich arbeite ja da mit unterschiedlichen Instanzen von DBverbindung.
Eigentlich wollte ich das ändern, und DBverbindung statisch machen, bzw so, dass nur ein einziges Objekt von der Klasse existieren kann-> Somit hätte ich auch nur eine Verbindung. Zum Schluss koennte ich diese einzelne Verbindung schließen.
Nach längeren Tests scheint es mir aber, als ob meine schlechte Lösung auch ginge. Bzw. ich komme nie zu einer
Meldung wie Max Connections erreicht oder sowas.
Kann es sein, dass meine Appliaktion doch nur eine Verbindung zur Datenbank hält obwohl ich zahlreiche Instanzen
von DBverbindung erzeuge? Oder hatte ich einfach nur Glück bis jetzt.?
Vielleicht weiß ja wer, wo und wie man live (z.B in der Console) die gerade bestehenden Verbindungen zu meiner SQL-DB sehen kann.
Danke für Infos
lg mas