Hallo zusammen,
ich habe gestern Nacht einen interessanten Beitrag zum Thema 'JDBC - Connection close' gelesen.
How to Close JDBC Resources Properly – Every Time | Shine Technologies
Wer keine Lust hat den Link anzuklicken, hier das Code-Beispiel aus dem Artikel um das es mir geht:
Dazu hätte ich nun 2 Fragen.
1)
In der gezeigten Klasse wird nur eine SQL-Abfrage/Anweisung ausgeführt. Bisher habe ich immer eine "DatabaseHandler"-Klasse erstellt, welche eine Verbindung aufbaut und alle SQL-Abfragen meines Programms enthält und diese bei Bedarf aufruft. Dadurch habe ich natürlich das Problem mit dem verbindung.close().
Unter dem Gesichtspunkt - CODE-OPTIMIERUNG:
Erstellt man für jede SQL-Abfrage eine eigene Java-Klasse z.B. nach dem oben gezeigten Pattern? Oder wie macht ihr Profis das?
2)
Wie bindet man den Treiber in diesem Beispiel korrekt ein? Dieser wird in dem Beispiel ja glaube ich mit dataSource.getConnection() eingebunden (oder irre ich mich??). Erstelle ich einfach eine Klasse "dataSource" mit der Methode "getConnection" und dieser steht dann sowas drin?
Habe mit sowas noch nicht viel Erfahrung, würde mir aber gerne versuchen direkt einen guten Programmier-Stil anzueignen.
Ich hoffe mir kann da jemand ein paar Tipps geben und Ihr versteht worum es mir geht
lg
ich habe gestern Nacht einen interessanten Beitrag zum Thema 'JDBC - Connection close' gelesen.
How to Close JDBC Resources Properly – Every Time | Shine Technologies
Wer keine Lust hat den Link anzuklicken, hier das Code-Beispiel aus dem Artikel um das es mir geht:
Java:
Connection connection = dataSource.getConnection();
try {
Statement statement = connection.createStatement();
try {
ResultSet resultSet = statement.executeQuery("some query");
try {
// Do stuff with the result set.
} finally {
resultSet.close();
}
} finally {
statement.close();
}
} finally {
connection.close();
}
Dazu hätte ich nun 2 Fragen.
1)
In der gezeigten Klasse wird nur eine SQL-Abfrage/Anweisung ausgeführt. Bisher habe ich immer eine "DatabaseHandler"-Klasse erstellt, welche eine Verbindung aufbaut und alle SQL-Abfragen meines Programms enthält und diese bei Bedarf aufruft. Dadurch habe ich natürlich das Problem mit dem verbindung.close().
Unter dem Gesichtspunkt - CODE-OPTIMIERUNG:
Erstellt man für jede SQL-Abfrage eine eigene Java-Klasse z.B. nach dem oben gezeigten Pattern? Oder wie macht ihr Profis das?
2)
Wie bindet man den Treiber in diesem Beispiel korrekt ein? Dieser wird in dem Beispiel ja glaube ich mit dataSource.getConnection() eingebunden (oder irre ich mich??). Erstelle ich einfach eine Klasse "dataSource" mit der Methode "getConnection" und dieser steht dann sowas drin?
Java:
public getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/bla", "root", "");
System.out.println("Datenbank Verbindung hergestellt!");
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Habe mit sowas noch nicht viel Erfahrung, würde mir aber gerne versuchen direkt einen guten Programmier-Stil anzueignen.
Ich hoffe mir kann da jemand ein paar Tipps geben und Ihr versteht worum es mir geht
lg