JavaFX MySQL-Datenbankverbindung
Das Verbinden von JavaFX-Anwendungen mit MySQL-Datenbanken erfordert eine bestimmte Klasse, die die Verbindung und den Datenabruf übernimmt. Hier ist ein einfaches Beispiel:
PersonDataAccessor:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; import java.util.List; import java.util.ArrayList; public class PersonDataAccessor { private Connection connection; // Constructor public PersonDataAccessor(String driverClassName, String dbURL, String user, String password) throws SQLException, ClassNotFoundException { Class.forName(driverClassName); connection = DriverManager.getConnection(dbURL, user, password); } // Close connection public void shutdown() throws SQLException { if (connection != null) { connection.close(); } } // Get person list public List<Person> getPersonList() throws SQLException { try ( Statement stmnt = connection.createStatement(); ResultSet rs = stmnt.executeQuery("select * from person"); ) { List<Person> personList = new ArrayList<>(); while (rs.next()) { String firstName = rs.getString("first_name"); String lastName = rs.getString("last_name"); String email = rs.getString("email_address"); Person person = new Person(firstName, lastName, email); personList.add(person); } return personList; } } }
Diese Klasse kümmert sich um den Verbindungsaufbau, die Abfrageausführung und den Datenabruf. Die Methode getPersonList() fragt die Tabelle „Person“ in der Datenbank ab und wandelt die abgerufenen Daten in eine Liste von Person-Objekten um.
Personenmodell (Datendarstellung):
import javafx.beans.property.StringProperty; import javafx.beans.property.SimpleStringProperty; public class Person { private StringProperty firstName = new SimpleStringProperty(this, "firstName"); public StringProperty firstNameProperty() { return firstName; } public String getFirstName() { return firstNameProperty().get(); } public void setFirstName(String firstName) { firstNameProperty().set(firstName); } private StringProperty lastName = new SimpleStringProperty(this, "lastName"); public StringProperty lastNameProperty() { return lastName; } public String getLastName() { return lastNameProperty().get(); } public void setLastName(String lastName) { lastNameProperty().set(lastName); } private StringProperty email = new SimpleStringProperty(this, "email"); public StringProperty emailProperty() { return email; } public String getEmail() { return emailProperty().get(); } public void setEmail(String email) { emailProperty().set(email); } public Person() {} public Person(String firstName, String lastName, String email) { setFirstName(firstName); setLastName(lastName); setEmail(email); } }
Diese Klasse definiert das Person-Objekt mit Eigenschaften für Vorname, Nachname und E-Mail.
UI-Klasse (zeigt Daten in einem an table):
import javafx.application.Application; import javafx.scene.control.TableView; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.BorderPane; import javafx.scene.Scene; import javafx.stage.Stage; public class PersonTableApp extends Application { private PersonDataAccessor dataAccessor; @Override public void start(Stage primaryStage) throws Exception { dataAccessor = new PersonDataAccessor(...); // Provide DB connection details TableView<Person> personTable = new TableView<>(); TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName")); TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name"); lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName")); TableColumn<Person, String> emailCol = new TableColumn<>("Email"); emailCol.setCellValueFactory(new PropertyValueFactory<>("email")); personTable.getColumns().addAll(firstNameCol, lastNameCol, emailCol); personTable.getItems().addAll(dataAccessor.getPersonList()); BorderPane root = new BorderPane(); root.setCenter(personTable); Scene scene = new Scene(root, 600, 400); primaryStage.setScene(scene); primaryStage.show(); } @Override public void stop() throws Exception { if (dataAccessor != null) { dataAccessor.shutdown(); } } public static void main(String[] args) { launch(args); } }
Diese Klasse initialisiert die Benutzeroberfläche und zeigt die Person-Objekte in einer TableView an.
Durch Befolgen dieser Schritte können Sie eine JavaFX-Anwendung erstellen, die erfolgreich eine Verbindung herstellt eine MySQL-Datenbank, ruft Daten ab und zeigt sie in einer benutzerfreundlichen Tabelle an.
Das obige ist der detaillierte Inhalt vonWie verbinde ich eine JavaFX-Anwendung mit einer MySQL-Datenbank und zeige Daten in einer TableView an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!