Wiederverwendung von Prepared Statements

Status
Nicht offen für weitere Antworten.

LivingHell

Mitglied
Hallo zusammen!

wir haben die von der Uni aus die Aufgabe unsere Datenbankklasse (JDBC, Prostgresql) in einem Projekt zu optimieren.
unter anderem wird auch verlangt, dass wir die SQL-Anfragen im Prepared Statement Cache halten. Die Frage is nur, wie das gemacht wird....????

Bisher hatten wir für jede Anfrage ein PS erzeugt und danach wieder geschlossen.


Vielen dank schonmal!
 

LivingHell

Mitglied

nich wirklich, soweit sind wir auch schon.

mal nen ausschnitt, wie wir es bisher haben:
Code:
	public List<Ward> getWards() {
		String query = "SELECT * FROM Station";
		try {

			PreparedStatement ps = con.prepareStatement(query);
			ResultSet rs = ps.executeQuery();
			List<Ward> list = new Vector<Ward>();
			while (rs.next()) {
				WardImpl ward = new WardImpl(this, rs.getLong(1));
				ward.setName(rs.getString(2));
				ward.setNumberOfBeds(rs.getInt(3));
				list.add(ward);
			}
			ps.close();
			rs.close();
			return list;

		} catch (SQLException e) {
			throw new FetchException(e);
		}
	}

will mein prof evtl, dass wir das PS als Datenfeld in der Klasse anlegen?
das wäre aber zu einfach...
 

robertpic71

Bekanntes Mitglied
Ich kenne eure Vorgaben nicht. Im "Real Life" löst das bei mir immer der Connectionpool. Die meisten Connectionpools lassen die PreparedStatements per Default offen. D.h. ich hole meine Connections vom Pool und das Close legt sie wieder zurück. Für das Programm ist es jedesmal ein neues preparedStatement, aber der Connectionpool verwendet das "alte" wieder.

Also, außer

1. Connectionpool
2. selber verwalten (in allen Abstufungen bis zum eigenen Pool oder Programmstart öffnen, ende schließen)
3. Serverseitig aktivieren (siehe maki's post) [!]

fällt mir auch nichts ein.

/Robert

Nachtrag:
[!] Ich sehe gerade, dass die im Link gepostete Optionen das Cachen verhindert und nicht fördert....
 
Zuletzt bearbeitet:

LivingHell

Mitglied
ok, habs dann durch ausprobieren selbst hinbekommen.

man legt erzeugt die PreparedStatements in dem Konstruktor der Datenbankklasse und lässt sie einfach die ganze Zeit offen.
bei vielen anfragen macht sich das dann schon sehr bemerkbar.


Thema erledigt, closed :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Wiederverwendung / Recycling / Queuing von Statement Objekten Datenbankprogrammierung 1
T Prepared Statements und Sets Datenbankprogrammierung 5
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
C PostgreSQL Prepared Statement Datenbankprogrammierung 7
N Prepared Statement mit unbekannter Anzahl von Where-Clauses Datenbankprogrammierung 30
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
F Frage zu Prepared Statement Datenbankprogrammierung 2
Landei Mehre Werte für einen Prepared-Statement_Parameter übergeben? Datenbankprogrammierung 3
N prepared Statements Datenbankprogrammierung 6
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
G Mit Prepared Statement in MDB schreiben Datenbankprogrammierung 7
W Prepared Statement und Verbindungsverlust Datenbankprogrammierung 4
W Prepared Statement mehrere Zeichenketten Datenbankprogrammierung 4
G Keine Aussicht mit Prepared Statement Datenbankprogrammierung 10
P Prepared Statement scheint nicht zu funktionieren Datenbankprogrammierung 14
N Prepared Statement Datenbankprogrammierung 8
G Flexible Prepared Statements Datenbankprogrammierung 2
F Update mit Prepared Statements Datenbankprogrammierung 10
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
berserkerdq2 database is closed, obwohl ich alle statements in try catch blöcken habe? Datenbankprogrammierung 5
J Wohin mit den SQL-Statements ? Datenbankprogrammierung 7
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
U JDBC prepaird Statements Datenbankprogrammierung 4
S SqlObject - eine objektorientierte Art SQL-Statements zu schreiben. Datenbankprogrammierung 4
P DB2 Reihenfolge Create Statements Datenbankprogrammierung 2
D Anzeige wärend des Ausführens eines Statements Datenbankprogrammierung 13
Z manipulation statements with executeQuery Datenbankprogrammierung 7
F statements und resultsets schließen Datenbankprogrammierung 2
M [gelöst] Problem mit SQL Server. Statements... Datenbankprogrammierung 4
G Library zum Generieren von SQL-Statements Datenbankprogrammierung 15
H Wie viele SQL-Statements gehen in ein Batch Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
J Aufteilung von Verbindungsaufbau & SQL Statements sinnvo Datenbankprogrammierung 15
R Statements und Resultset Allgemein Datenbankprogrammierung 2
H Sql Statements automatisch generieren lassen Datenbankprogrammierung 2
G Ausführen von SQL-Statements Datenbankprogrammierung 7
H logging von postgresql statements Datenbankprogrammierung 5
L Mehrere SQL-Statements gleichzeitig!? Datenbankprogrammierung 5
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben