# executeQuery & executeBatch



## savvo (5. Januar 2005)

Hallo

Ich versuche eine Applikation zu schreiben die Daten aus einer Datenbank auslesen kann. Nun soweit habe ich es geschaft, jedoch wollte ich ebenfalls die SQL - Befehle wie INSERT, UPDATE, DELETE brauchen können, dies geht nicht. Meine Query's werden in eine JTextArea eingegeben, falls es Probleme mit der Syntax gibt wird die SQLException in einem JTextField eingefügt.


```
public void buildTable() throws SQLException {
  Statement stmt = Connector.getStatement();
  model = new TableModel(stmt.executeQuery(sqlStmt()));
  table.setEnabled(false);
  table.setModel(model);
  table.updateUI();
  table.setEnabled(true); 
}


sendQuery.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    try {
     buildTable();
     msg.setText("done");
     rowsCount();
    } catch (SQLException e1) {
     msg.setText(e1.toString());
    }
   }
  });
```

Wollte noch diesen Code nützen können

```
stmt.addBatch(sqlStmt());
stmt.executeBatch();
```

Ich habe zur Zeit keine Ahnung  wo ich diesen Code implementieren muss. Habe zu Testzwecken :suspekt: mal im buildTable() folgendes geändert

```
public void buildTable() throws SQLException {
  Statement stmt = Connector.getStatement();
try {
  model = new TableModel(stmt.executeQuery(sqlStmt()));
  table.setEnabled(false);
  table.setModel(model);
  table.updateUI();
  table.setEnabled(true); 
}
catch(SQLException e) {
stmt.addBatch(sqlStmt());
stmt.executeBatch();
}
}
```
Auf dieser Weise funktioniert es aber mir ist bewusst dass dies nicht eine saubere Lösung ist und die SQLException im JTextfield kann ich so auch nicht brauchen. 

Kann mir jemand helfen?

Gruss
Savvo


----------



## Thomas Darimont (5. Januar 2005)

Hallo!

Mit addBatch und executeBatch() kann man eine art Stapelverwarbeitung von SQL Statements realsieren. Mit addBatch wird eben ein Kommando auf den Stapel gelegt und mit executeBatch() ausgeführt. Das eignet sich beispielsweise sehr gut für Massendaten Änderungen im Single User Betrieb.

Gruß Tom


----------



## savvo (5. Januar 2005)

Hallo Tom

Ja genau, da hab ich das falsche Kommando genommen, muss vermutlich mit executeUpdate() arbeiten.

Hättest du mir eine Idee wie ich dies mittels einer sauberen Lösung implementieren kann?

Gruss
Savvo


----------

