summaryrefslogtreecommitdiff
path: root/Java-Kompendium/kap15/src/main/java/SearchAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'Java-Kompendium/kap15/src/main/java/SearchAction.java')
-rw-r--r--Java-Kompendium/kap15/src/main/java/SearchAction.java44
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;
+ }
+}