gpt4 book ai didi

mysql - 请使用 JavaFX MySQL 连接示例

转载 作者:可可西里 更新时间:2023-11-01 06:31:28 24 4
gpt4 key购买 nike

谁能给我一个连接 JavaFX 和 MySQL 的类的例子,不要主类,有一个,只想要一个将任何应用程序连接到 MySQL 数据库并从该数据库中获取一行的类的例子表,搜索了整个互联网,我没有找到任何直截了当的东西,我不想要任何花哨的东西,只是为了完成工作。干净简单的东西。

最佳答案

您至少需要三个类:一个用于表示您的数据,一个用于您的 UI,一个用于管理数据库连接。当然,在真正的应用程序中,您需要的远不止这些。此示例遵循与 TableView tutorial 相同的基本示例

假设您的数据库有一个 person三列表,first_name , last_name , email_address .

然后你会写一个Person类:

import javafx.beans.property.StringProperty ;
import javafx.beans.property.SimpleStringProperty ;

public class Person {
private final StringProperty firstName = new SimpleStringProperty(this, "firstName");
public StringProperty firstNameProperty() {
return firstName ;
}
public final String getFirstName() {
return firstNameProperty().get();
}
public final void setFirstName(String firstName) {
firstNameProperty().set(firstName);
}

private final StringProperty lastName = new SimpleStringProperty(this, "lastName");
public StringProperty lastNameProperty() {
return lastName ;
}
public final String getLastName() {
return lastNameProperty().get();
}
public final void setLastName(String lastName) {
lastNameProperty().set(lastName);
}

private final StringProperty email = new SimpleStringProperty(this, "email");
public StringProperty emailProperty() {
return email ;
}
public final String getEmail() {
return emailProperty().get();
}
public final void setEmail(String email) {
emailProperty().set(email);
}

public Person() {}

public Person(String firstName, String lastName, String email) {
setFirstName(firstName);
setLastName(lastName);
setEmail(email);
}

}

访问数据库中数据的类:

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 {

// in real life, use a connection pool....
private Connection connection ;

public PersonDataAccessor(String driverClassName, String dbURL, String user, String password) throws SQLException, ClassNotFoundException {
Class.forName(driverClassName);
connection = DriverManager.getConnection(dbURL, user, password);
}

public void shutdown() throws SQLException {
if (connection != null) {
connection.close();
}
}

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 ;
}
}

// other methods, eg. addPerson(...) etc
}

然后是一个 UI 类:

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 driverName, dbURL, user, password...

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);
}
}

(我只是在没有测试的情况下输入,所以可能会有拼写错误、缺少导入等,但它应该足以让您了解。)

关于mysql - 请使用 JavaFX MySQL 连接示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25651641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com