0

私はJava(およびswing)を初めて使用し、すべてのJList要素をデータベースまたは特にMySQLに保存(および後で再ロード)する方法を探しています。Java Serializableについて読みましたが、参照用の動作するコードが見つかりません。

4

1 に答える 1

2

シリアル化は答えではありません。実行したいのは、JList Modelクラスを反復処理し、各アイテムのデータをデータベースに保存できるコントローラーを用意することです。

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 に答える