J
Java Nooob
Gast
Hi folgendes Problem.
Ich habe mehrere Datenbanlabfragen hintereinander. Die Abfragen beziehen sich alle auf die selbe Tabelle.
Wie kann ich sicherstellen das die Abfagen Zeitlich so ablaufen das der nächste SQL Befehl erst ausgeführt wird wenn der vorherige beendet ist. Hier mal ein bisschen code.
in einer anderen Methode werden folgende Befehle nacheinander ausgeführt
Die Methode refresh() beinhaltet auch mehrere SQL Befehle. Habe bis jetzt mit Thread.sleep() gearbeitet. Allerdings kann das ja nicht die wahre Lösung sein. Wie würde die richtige Vorgehensweise lauten.
Danke an alle Helfer!
Ich habe mehrere Datenbanlabfragen hintereinander. Die Abfragen beziehen sich alle auf die selbe Tabelle.
Wie kann ich sicherstellen das die Abfagen Zeitlich so ablaufen das der nächste SQL Befehl erst ausgeführt wird wenn der vorherige beendet ist. Hier mal ein bisschen code.
Code:
public static void conUpdate(String sqlQuery){
//Überprüfen ob ODBC Treiber vorhanden sind!!
try {
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
}
catch ( ClassNotFoundException e ) {
System.out.println( "Fehler bei ODBC-JDBC-Bridge" + e );
return;
}
//Verbindung herstellen mit sqlQuery!
try {
String url = "jdbc:odbc:kn";
con = DriverManager.getConnection( url, "lutz", "lutz" );
stmt = con.createStatement(1004, 1008);
//String sqlQuery = "SELECT Name, Abteilung FROM Name WHERE Abteilung = 'STR CI';";
System.out.println(sqlQuery);
stmt.executeUpdate( sqlQuery );
}
catch ( SQLException e )
{
e.printStackTrace();
JDialog fehlermeldung = new JDialog();
fehlermeldung.add( new JLabel("Fehler bei Tabellenabfrage" + e ) );
fehlermeldung.setSize( 500, 100 ); fehlermeldung.setVisible( true );
return;
}
//Datenbankverbindung schließen!
}
in einer anderen Methode werden folgende Befehle nacheinander ausgeführt
Code:
private void btCheckOutActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
GregorianCalendar calendar = new GregorianCalendar();
DateFormat dft = new SimpleDateFormat("dd.MM.yyyy HH:mm");
Date date2 = calendar.getTime();
String Zeit = dft.format(date2);
int id = Integer.valueOf(String.valueOf(TableCheckOut.getValueAt(TableCheckOut.getSelectedRow(),0)));
database.DataConnection.conUpdate("UPDATE Checkin SET Status = 4, Checkout = '"+Zeit+"' WHERE ID ="+id+"");
database.DataConnection.conUpdate("INSERT INTO ArchivWD SELECT * FROM Checkin WHERE ID = "+id+"");
try{
Thread.sleep(1000);
}catch(Exception e){
}
database.DataConnection.conUpdate("DELETE * FROM Checkin WHERE ID = "+id+"");
try{
Thread.sleep(1000);
}catch(Exception e){
}
refresh();
}
Die Methode refresh() beinhaltet auch mehrere SQL Befehle. Habe bis jetzt mit Thread.sleep() gearbeitet. Allerdings kann das ja nicht die wahre Lösung sein. Wie würde die richtige Vorgehensweise lauten.
Danke an alle Helfer!