零基础直接上手java跨平台桌面程序,使用javafx(六)查询sqlite数据显示到TableView中

        我们使用jdbc查询sqlite的一个表显示到TableView中

       在hello-view的onMouseClicked里面填上“openclick2”,然后在HelloController写上openclick2的相关代码@FXML protected void openclick2() { }。我们要先配置好sqlite的jdbc驱动(略)。openclick2的代码如下:

 protected void openclick2()
    {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("文件sqlite");
        fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("sqlite", "*.db", "*.db3"));
        // 设置文件选择框的初始目录(可选)
        //fileChooser.setInitialDirectory(new File(System.getProperty("user.home")));
        // 显示文件选择框并获取所选文件
        File selectedFile = fileChooser.showOpenDialog(new Stage());

        if (selectedFile != null) {
            String fileName = selectedFile.getName();
            String databaseUrl = "jdbc:sqlite:" + selectedFile.getPath();
            try (Connection connection = DriverManager.getConnection(databaseUrl)) {
                Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery("SELECT * FROM sheet1");

                // 清除旧的列
                TableView1.getColumns().clear();

                // 获取元数据以动态创建列
                ResultSetMetaData metaData = resultSet.getMetaData();
                int columnCount = metaData.getColumnCount();
                for (int i = 1; i <= columnCount; i++) {
                    final int columnIndex = i;
                    TableColumn<ObservableList<Object>, Object> column = new TableColumn<>(metaData.getColumnName(i));
                    column.setCellValueFactory(param -> new javafx.beans.property.SimpleObjectProperty<>(param.getValue().get(columnIndex - 1)));
                    TableView1.getColumns().add(column);
                }

                // 加载数据到TableView
                ObservableList<ObservableList<Object>> data = FXCollections.observableArrayList();
                while (resultSet.next()) {
                    ObservableList<Object> row = FXCollections.observableArrayList();
                    for (int i = 1; i <= columnCount; i++) {
                        row.add(resultSet.getObject(i));
                    }
                    data.add(row);
                }
                TableView1.setItems(data);

            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }

我们可以看到jdbc取数据的语句非常的简单,比c#的ado还要简单。

try (Connection connection = DriverManager.getConnection(databaseUrl)) {
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery("SELECT * FROM sheet1");}

Connection 对象:Connection 对象代表与数据库的连接。要连接到数据库,您需要使用 DriverManager 类的 getConnection 方法,该方法接收数据库URL、用户名和密码作为参数。

Statement 对象:Statement 对象用于执行静态SQL语句并返回其生成的结果。

ResultSet 对象:ResultSet 对象代表SQL查询的结果集,通常是通过执行 Statement 对象生成的。

运行效果如下:

        

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Kotlin使用JavaFX开发跨平台桌面应用程序主要需要以下步骤: 1. 安装JavaFXJavaFXJava平台的一个GUI框架,可以用于创建丰富的桌面应用程序。在Kotlin使用JavaFX,需要先安装JavaFX。可以从Oracle官网下载JavaFX SDK,或者从Maven仓库获取。 2. 配置开发环境:配置Kotlin和JavaFX的开发环境,使得Kotlin代码能够访问JavaFX库。在IntelliJ IDEA,可以通过添加JavaFX SDK的路径来配置JavaFX的开发环境。 3. 创建JavaFX应用程序使用Kotlin编写JavaFX应用程序,可以使用JavaFX的API,以及Kotlin的语法和特性。在Kotlin创建JavaFX应用程序的方式和在Java创建JavaFX应用程序的方式类似。 4. 编译和打包应用程序使用Kotlin编写的JavaFX应用程序可以编译为Java字节码,然后打包为可执行文件。可以使用Maven或Gradle来管理项目,构建和打包应用程序。 下面是一个使用Kotlin和JavaFX开发桌面应用程序的示例代码: ```kotlin import javafx.application.Application import javafx.scene.Scene import javafx.scene.control.Button import javafx.scene.layout.StackPane import javafx.stage.Stage class HelloWorld : Application() { override fun start(primaryStage: Stage?) { val button = Button("Hello World") button.setOnAction { println("Hello World") } val root = StackPane() root.children.add(button) val scene = Scene(root, 300.0, 250.0) primaryStage?.title = "Hello World" primaryStage?.scene = scene primaryStage?.show() } } fun main(args: Array<String>) { Application.launch(HelloWorld::class.java, *args) } ``` 这个应用程序创建了一个窗口,包含一个按钮,点击按钮时会在控制台输出"Hello World"。可以使用Kotlin编译器编译这个应用程序,并打包为可执行文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值