сохранить / восстановить элемент Java JList Swing в / из MySQL - PullRequest
0 голосов
/ 24 сентября 2010

Я новичок в Java (и свинг) и ищу способ сохранить (и перезагрузить его позже) все элементы JList в базу данных или, в частности, MySQL.Я прочитал о Java Serializable и не могу найти рабочий код для справки.

1 Ответ

2 голосов
/ 24 сентября 2010

Сериализация не является ответом.Вам нужно иметь контроллер, который может выполнять итерации класса 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);
}

Таким образом, вы сохраняете данные только в базу данных.и не часть пользовательского интерфейса списка, а все остальные биты вокруг него, которые будет делать попытка сериализации 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;
}
...