0

我是 Java 新手(和 Swing),正在寻找一种将所有 JList 元素保存(并稍后重新加载)到数据库或特别是 MySQL 的方法。我阅读了有关 Java Serializable 的信息,但找不到可供参考的工作代码。

4

1 回答 1

2

序列化不是答案。您要做的是拥有一个可以迭代 JList 模型类的控制器,并将每个项目的数据保存到数据库中。

String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);

for(int i = 0; i < dataList.getModel().getSize(); i++) {
    String item = (String)dataList.getModel().getElementAt(i);
    saveItemToDatabase(item);
}

这样,您只是将数据保存到数据库,而不是列表的 UI 部分,以及尝试序列化 Jlist 的所有其他位。

编辑:为了保存整个模型,我仍然会单独保存项目,而不是 BLOB。因此,要从数据库中检索数据,您可以执行类似的操作

dataList.setListData(loadModelFromDatabase());

public Vector loadModelFromDatabase() {
    Vector listModelData = new Vector();
    ResultSet res = conn.prepareStatement("SELECT * FROM listmodel").executeQuery();
    while(res.next()) {
       listModelData.add(res.getString(1));
    }

    return listModelData;
}
于 2010-09-24T09:41:42.443 回答