You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于创建JavaFX项目是否需数据库及运行时临时存储的问询

嘿,我来帮你把这两个问题说清楚!

关于JavaFX项目是否需要数据库

完全不需要!数据库的核心作用是长期持久化存储数据——也就是程序关闭后数据还能保留。而你的需求是仅在本次运行期间留存数据,完全没必要引入数据库,反而会平白增加项目的复杂度(比如要配置连接、写SQL之类的),纯粹是小题大做啦。

如何实现运行期间的临时数据存储

针对你的需求,最直接高效的方式就是用内存中的数据结构来存,数据只会留在程序运行时的内存里,程序一关闭就自动消失,完美符合你的要求。给你两个实用方案:

方案1:普通Java集合类(简单直接)

用Java自带的ArrayList、HashMap这类内存集合就足够了。举个具体例子:
首先创建一个用来封装数据的实体类:

public class UserInputData {
    private String name;
    private String extraData;

    // 构造方法、getter方法
    public UserInputData(String name, String extraData) {
        this.name = name;
        this.extraData = extraData;
    }

    public String getName() { return name; }
    public String getExtraData() { return extraData; }
}

然后在你的JavaFX控制器或者主类里,定义一个集合来存储用户输入:

// 作为类的成员变量,确保生命周期和程序一致
private List<UserInputData> tempStorage = new ArrayList<>();

// 当用户提交输入时,把数据加入集合
public void onSubmitButtonClicked(ActionEvent event) {
    String inputName = nameTextField.getText();
    String inputExtra = extraTextField.getText();
    tempStorage.add(new UserInputData(inputName, inputExtra));
    
    // 这里可以写代码把集合里的数据展示到UI上,比如遍历后加到Label或者ListView里
}

方案2:JavaFX Observable集合(自动更新UI)

如果你的需求是数据变化时UI能自动刷新(比如输入后列表立刻显示新数据),那用JavaFX自带的ObservableList就更方便了,它会自动通知UI组件更新:

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.ListView;

// 定义ObservableList作为存储容器
private ObservableList<UserInputData> observableStorage = FXCollections.observableArrayList();

// 初始化UI时,把集合绑定到ListView
public void initialize() {
    ListView<UserInputData> dataListView = new ListView<>(observableStorage);
    // 可以自定义ListView的显示格式
    dataListView.setCellFactory(param -> new ListCell<>() {
        @Override
        protected void updateItem(UserInputData item, boolean empty) {
            super.updateItem(item, empty);
            if (empty || item == null) {
                setText(null);
            } else {
                setText(String.format("姓名:%s,其他数据:%s", item.getName(), item.getExtraData()));
            }
        }
    });
}

// 用户提交时直接添加数据,UI会自动刷新
public void onSubmitButtonClicked(ActionEvent event) {
    String inputName = nameTextField.getText();
    String inputExtra = extraTextField.getText();
    observableStorage.add(new UserInputData(inputName, inputExtra));
}

不管用哪种方案,数据都是存在JVM的内存中,程序关闭后就会被自动回收,绝对不会长期存储,完全满足你的需求~

内容的提问来源于stack exchange,提问作者Omar Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:58