使用JavaFX查询数据库

在Java应用程序中,经常需要与数据库进行交互来存储和检索数据。JavaFX是一个用于构建现代图形用户界面的框架,结合数据库操作可以为应用程序提供更强大的功能。本文将介绍如何在JavaFX应用程序中查询数据库,并提供代码示例。

数据库连接

首先,我们需要建立与数据库的连接。在Java中,通常使用JDBC(Java Database Connectivity)来连接数据库。我们可以使用Java中的ConnectionStatementResultSet类来进行数据库操作。在本例中,我们假设已经创建了一个名为students的数据库,并在其中有一个名为student_info的表。

```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection {
    private static final String URL = "jdbc:mysql://localhost:3306/students";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }
}

## 查询数据库

在JavaFX应用程序中查询数据库通常需要在后台线程中进行,以避免阻塞UI线程。我们可以使用JavaFX的`Task`类来创建一个后台任务。以下是一个简单的例子,在JavaFX应用程序中查询数据库并将结果显示在UI上。

```markdown
```java
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        VBox root = new VBox();
        Label label = new Label();

        Task<Void> task = new Task<Void>() {
            @Override
            protected Void call() {
                Connection connection = DatabaseConnection.getConnection();
                if (connection != null) {
                    try {
                        Statement statement = connection.createStatement();
                        ResultSet resultSet = statement.executeQuery("SELECT * FROM student_info");

                        while (resultSet.next()) {
                            String name = resultSet.getString("name");
                            int age = resultSet.getInt("age");
                            label.setText("Name: " + name + ", Age: " + age);
                        }

                        connection.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                return null;
            }
        };

        new Thread(task).start();

        root.getChildren().add(label);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

## 流程图

下面是查询数据库的流程图,展示了从建立数据库连接到查询数据库的整个过程。

```mermaid
flowchart TD
    A(开始) --> B(建立数据库连接)
    B --> C(查询数据库)
    C --> D(显示结果)
    D --> E(结束)

通过以上步骤,我们可以在JavaFX应用程序中顺利地查询数据库,并将结果显示在用户界面上。这样,我们就可以实现更加强大和交互性的应用程序。希望这篇文章能够帮助你更好地理解如何在JavaFX应用程序中进行数据库查询。