Хранить список объектов в db4o - PullRequest
0 голосов
/ 13 сентября 2011

Интересно, есть ли более красивый способ хранения списка объектов:

ArrayList<Item> itemsList = new ArrayList<Item>;
itemsList.add(new Item(1));
itemsList.add(new Item(2));

ItemDBProvider dbProvider = new ItemDBProvider();

for (int i = 0; i < itemsList.size(); i++){
    dbProvider.store(itemsList.get(i));
}

dbProvider.getDB().commit();
dbProvider.close();

Обратите внимание, ItemDBProvider - это просто оболочка для расширенного класса, который открывает и использует ObjectContainer.

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

Вы можете просто использовать objectcontainer.store(itemsList) для хранения всего списка вместе с его элементами.

БД не знает, что это список Item, поскольку универсальные типы Java доступны только во время компиляции. С таким же успехом он будет хранить List<Object> с этими элементами.

1 голос
/ 13 сентября 2011

Используйте расширенный цикл for (Java 1.5 +):

for (Item item:itemsList) {
    dbProvider.store(item);
}
...