Подключение к базе данных MySQL JavaFX
Для подключения приложений JavaFX к базам данных MySQL требуется специальный класс, который обрабатывает соединение и получение данных. Вот простой пример:
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 ListgetPersonList() throws SQLException { try ( Statement stmnt = connection.createStatement(); ResultSet rs = stmnt.executeQuery("select * from person"); ) { List 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; } } }
Этот класс управляет установлением соединения, выполнением запроса и получением данных. Метод getPersonList() запрашивает таблицу «person» в базе данных и преобразует полученные данные в список объектов Person.
Модель человека (представление данных):
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); } }
Этот класс определяет объект Person со свойствами для имени, фамилии и электронной почты.
Класс пользовательского интерфейса (отображает данные в таблице):
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 TableViewpersonTable = new TableView(); TableColumn firstNameCol = new TableColumn("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName")); TableColumn lastNameCol = new TableColumn("Last Name"); lastNameCol.setCellValueFactory(new PropertyValueFactory("lastName")); TableColumn 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); } }
Этот класс инициализирует пользовательский интерфейс и отображает объекты Person в TableView.
Следуя этим шагам, вы можете создать приложение JavaFX, которое успешно подключается к базе данных MySQL, извлекает данные и отображает его в удобной для пользователя таблице.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3