Hallo,
ich bin dabei ein halbwegs größeres Programm zu schreiben.
Das Programm arbeitet viel mit einer Datenbank.
Die Verbindung klappt soweit.
Ich habe mir eine Klasse Datenbank geschrieben, die ich 1x in der Main-Methode meines Programmes aufrufe. Das Objekt gebe ich an die Klassen weiter, die mit der Datenbank arbeiten.
Die Datenbank-Klasse sieht so aus:
Wenn jetzt irgendeine Klasse meines Programms mit der Datenbank arbeiten will, bekommt diese Klasse das datenbank-Objekt, dass ich 1x in der main-methode erstellt habe und ruft mit dem Objekt dann die beiden Methoden datenbankAktionMitResultSet bzw. datenbankAktionOhneResultSet auf.
Wenn ich datenbankAktionMitResultSet aufrufe, erstelle ich zuerst ein Resultset-Objekt und lasse es mit der Methode dann auffüllen und wieder zurückgeben... (hoffentlich sowei verständlich )
- Ist es sinnvoll die beiden Methoden synchronized zu setzen?...um zu verhindern, dass die Methode zur gleichen Zeit mehrmals aufgerufen wird?
- Machen die beiden Methoden bzw. die Klasse Datenbank Sinn?
- Wie wird das bei wirklichen großen Programmen gemacht? ^^
ich bin dabei ein halbwegs größeres Programm zu schreiben.
Das Programm arbeitet viel mit einer Datenbank.
Die Verbindung klappt soweit.
Ich habe mir eine Klasse Datenbank geschrieben, die ich 1x in der Main-Methode meines Programmes aufrufe. Das Objekt gebe ich an die Klassen weiter, die mit der Datenbank arbeiten.
Die Datenbank-Klasse sieht so aus:
Java:
public class Datenbank {
public Datenbank() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
datenbankVerbinden();
}
public Connection connection;
private void datenbankVerbinden() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
String treiber = "org.apache.derby.jdbc.EmbeddedDriver";
Class.forName(treiber).newInstance();
String datenbankLink = "...";
connection = DriverManager.getConnection(datenbankLink, ..., ...);
}
public synchronized ResultSet datenbankAktionMitResultSet(String abfrage, ResultSet resultSet) throws SQLException {
try (Statement statement = connection.createStatement()) {
resultSet = statement.executeQuery(abfrage);
}
return resultSet;
}
public synchronized void datenbankAktionOhneResultSet(String abfrage) throws SQLException {
try (Statement statement = connection.createStatement()) {
statement.executeUpdate(abfrage);
}
}
}
Wenn jetzt irgendeine Klasse meines Programms mit der Datenbank arbeiten will, bekommt diese Klasse das datenbank-Objekt, dass ich 1x in der main-methode erstellt habe und ruft mit dem Objekt dann die beiden Methoden datenbankAktionMitResultSet bzw. datenbankAktionOhneResultSet auf.
Wenn ich datenbankAktionMitResultSet aufrufe, erstelle ich zuerst ein Resultset-Objekt und lasse es mit der Methode dann auffüllen und wieder zurückgeben... (hoffentlich sowei verständlich )
- Ist es sinnvoll die beiden Methoden synchronized zu setzen?...um zu verhindern, dass die Methode zur gleichen Zeit mehrmals aufgerufen wird?
- Machen die beiden Methoden bzw. die Klasse Datenbank Sinn?
- Wie wird das bei wirklichen großen Programmen gemacht? ^^