JavaFX MySQL连接示例请

任何人都可以给我一个将JavaFX与MySQL连接的类的示例,不希望Main类,只有一个,仅需要一个将任何应用程序连接至MySQL数据库并从该数据库中获取一行到表中的类的示例,进行搜索整个互联网,我什么都找不到,我不想要任何花哨的东西只是为了完成工作。干净简单的东西。

回答:

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

假设你的数据库有一个person三列的表,first_namelast_nameemail_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);

}

}

(我只是在未经测试的情况下输入了此内容,因此可能会有错别字,缺少输入内容等,但这足以让您知道。)

以上是 JavaFX MySQL连接示例请 的全部内容, 来源链接: utcz.com/qa/429988.html

回到顶部