diff options
Diffstat (limited to 'Java-Kompendium/kap15/src/main/java/SearchAction.java')
| -rw-r--r-- | Java-Kompendium/kap15/src/main/java/SearchAction.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Java-Kompendium/kap15/src/main/java/SearchAction.java b/Java-Kompendium/kap15/src/main/java/SearchAction.java new file mode 100644 index 0000000..45aa84f --- /dev/null +++ b/Java-Kompendium/kap15/src/main/java/SearchAction.java @@ -0,0 +1,44 @@ +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.scene.control.TextField; +import javafx.scene.text.Text; +import java.sql.*; +import javafx.collections.FXCollections; + +public class SearchAction implements EventHandler<ActionEvent> { + private Text status; + private TextField field; + private PreparedStatement statement; + private ObservableList<Mark> marks = FXCollections.observableArrayList(); + + public SearchAction(Connection connection, Text status, TextField field) throws SQLException { + this.statement = connection.prepareStatement( + "SELECT english, german, math FROM marks WHERE name LIKE ?" + ); + this.status = status; + this.field = field; + } + + public void handle(ActionEvent action) { + try { + this.statement.setString(1, this.field.getText()); + this.statement.execute(); + + var results = this.statement.getResultSet(); + + this.marks.clear(); + if (results.next()) { + this.marks.add(new Mark("Englisch", results.getInt(1))); + this.marks.add(new Mark("Deutsch", results.getInt(2))); + this.marks.add(new Mark("Mathematik", results.getInt(3))); + } + } catch (Exception exception) { + this.status.setText(exception.getMessage()); + } + } + + public ObservableList<Mark> getMarks() { + return this.marks; + } +} |
