HSQLDB Mehrere PreparedStatements ausführen

Supra

Bekanntes Mitglied
Gibt es eine möglichkeit mehrere ( unterschiedliche!) abfragen (PreparedStatements) auszuführen, ohne den großen aufwand? In meinen Falle müsste ich ja jetzt 4 mal
Java:
.excuteUpdate();
und 4 mal eine
Java:
.close(...)
funktion benutzen. Das geht doch sicherlich einfacher oder? habe schon was von addbatch gehört, aber noch kein Gutes beispiel gesehen.
 
Zuletzt bearbeitet:

turtle

Top Contributor
Üblicherweise solltest du einen JDBC-Treiber mit Pooled-Connection verwenden.

Dann closed() du zwar eine Verbindung, aber wird diese intern "nur" an den Pool zurück gegeben und kann gleich wieder benutzt werden ohne den langsamen Aufbau einer Verbindung zur DB.

Der Vorteil von Prepared-Statements ist ja, dass du einen SQL-Befehl hast und dieses über verschiedene Parameter "fütterst".

Und letztendlich kommt da natürlich ein Resultset zurück, das du verarbeiten musst. Daher findest du auch keine Beispiele im Netz, wo via Batching Abfragen ausgeführt werden. Gute Beispiele sind hier beim Einfügen/Löschen/Update von Datensätzen, wo halt Prepared-Statements gut gebraucht werden können.

Aber vier verschiedene Abfragen gibt halt auch vier verschiedene Resultsets...

Wenn dich der Code-Aufwand stört, nutze eine Bibliothek, die dieses weitestgehend übernimmt.
 

SnowFall

Mitglied
Hall Supra,

ja die Möglichkeit gibt es und zwar hat die Klasse PreparedStatement die methode

Java:
.addBatch()

damit wird dein fertiges PreparedStatement in einem Batch gespeichert

nachdem du mehrer statements in dem Batch gespeichert hast musst du nur noch die

methode

Java:
.executeBatch()

aufrufen , merke es wird ein IntegerArray zurück gegeben.

kleines beispielprogramm:

die Methode die abgebildet wird ist jediglich dazu da , Daten aus einer Datei in die Datenbank Tabelle D zuschreiben.

Java:
private static void insertDataD(Connection con) {
		// Quellcode erstellen
		File f1 = new File("Department.txt");
		
		String sql1 = "Insert into D values(?,?,?)";
		
		try{
		PreparedStatement preparedStatement = con.prepareStatement(sql1);
		int[] x = null;
		
		
				try {
					FileReader fr = new FileReader(f1);
					BufferedReader br = new BufferedReader(fr);
					String zeile;
					while((zeile = br.readLine())!=null){
						String[] parts = zeile.split(";");
						
						preparedStatement.setInt(1, Integer.parseInt(parts[0]));
						preparedStatement.setString(2, parts[1]);
						preparedStatement.setString(3, parts[2]);
						preparedStatement.addBatch();
						
						
						
					}
					
					
					br.close();
					fr.close();
					
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					System.out.println("insertDataD fehlgeschlafen Datei nicht gefunden " +e.getMessage());
				} catch(IOException e){
					
				}
		x  = preparedStatement.executeBatch();
		System.out.println("Daten in D eingefüllt");
		
		
		
		
		
		
		}catch(SQLException sqle){
			System.out.println("Fehler insertDataD sql" + sqle.getMessage());
		}
		
		
		
	}


Gruß Snow
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Daten auf mehrere Tabellen aufteilen oder Spalten nutzen Datenbankprogrammierung 2
J Mehrere WHERE Werte benutzen Datenbankprogrammierung 2
G ID zuweisung eines TerminKalenders (mehrere Kalender) Datenbankprogrammierung 8
K Mehrere Benutzer Datenbankprogrammierung 6
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
O HSQLDB Eine Entität, mehrere Tabellen Datenbankprogrammierung 8
S Abfrage von Gruppentickets(Mehrere Resorts an einem Tag) Datenbankprogrammierung 1
E Mehrere Tabellenspalten mit INNER JOIN verknüpfen Datenbankprogrammierung 1
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S MySQL Abfrage über mehrere Tabellen + Einträge werden überschrieben Datenbankprogrammierung 1
I MySQL Vergleich über mehrere Tabellen! Join? Datenbankprogrammierung 6
J Mehrere Inserts bei Fehlschlag abbrechen Datenbankprogrammierung 2
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
D Frage zu INSERTS über mehrere Datenbanktabellen Datenbankprogrammierung 3
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
G JOIN Abfrage über mehrere Tabellen Datenbankprogrammierung 15
G SQL Abfrage über mehrere Tabellen Datenbankprogrammierung 28
O eine Tabelle hat mehrere PrimKey mit dem selben Wert Datenbankprogrammierung 9
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
multiholle SQL Querry über mehrere Spalten Datenbankprogrammierung 12
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
O Mittelwert über mehrere Zeilen Datenbankprogrammierung 11
G Mehrere Tabellen abfragen Datenbankprogrammierung 7
D mehrere Datensätze in ein Listenfeld Datenbankprogrammierung 2
T JAVA JDBC mehrere Anfragen direkt hintereinander ausführen Datenbankprogrammierung 2
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
M Mehrere Tabellen zusammenführen Datenbankprogrammierung 4
W Prepared Statement mehrere Zeichenketten Datenbankprogrammierung 4
F Mehrere unterschiedliche ResultSets Datenbankprogrammierung 7
P [Hibernate] Mehrere Keys in einem <set> Datenbankprogrammierung 11
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
N mehrere tables hintereinander Datenbankprogrammierung 4
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
N Mehrere Abfragen gleichzeitig - was passiert da? Datenbankprogrammierung 6
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
M Mehrere ResultSets gleichzeitig verwenden Datenbankprogrammierung 3
L Mehrere SQL-Statements gleichzeitig!? Datenbankprogrammierung 5
F mehrere Datenbankupdates nacheinander Datenbankprogrammierung 3
N SQL-Injection verhindern OHNE PreparedStatements Datenbankprogrammierung 11
O MySQL PreparedStatements: int null Datenbankprogrammierung 7
D mySQL emullierte PreparedStatements haben Fehler unter Last Datenbankprogrammierung 3
S PreparedStatements, Abfrageoptimierung unter MS Access Datenbankprogrammierung 5
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6
D H2 schema-Datei ausführen Datenbankprogrammierung 22
nonickatall MySQL SQL Abfrage erneut ausführen oder rs aktualisieren Datenbankprogrammierung 14
M MySQL Passwort Clientseitig ändern und über Button ausführen Datenbankprogrammierung 0
K Automatisches Ausführen um Datenbank zu aktualisieren Datenbankprogrammierung 2
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
J SQLite Abfrage ausführen stoppt für Zyklus? Wie es zu lösen? Datenbankprogrammierung 3
D Oracle Funktion mit mehreren Out Parametern ausführen? Datenbankprogrammierung 3
C komprimiertes Jar ausführen Datenbankprogrammierung 2
A SQL-Befehle lassen sich nicht ausführen Datenbankprogrammierung 6
achillesat Jasperreport in Java Ausführen Datenbankprogrammierung 3
M mysql jdbc batch files ausführen. Datenbankprogrammierung 3
B MySQL Befehl ausführen Datenbankprogrammierung 3
B mysql query ausführen Datenbankprogrammierung 4
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
C SQL Befehle ausführen und deren Ergebnisse verarbeiten Datenbankprogrammierung 3
J VBScript ausführen Datenbankprogrammierung 5
G Ausführen von SQL-Statements Datenbankprogrammierung 7
S SQL-Anweisungen an DB übergeben und ausführen Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben