Лучшая идея, если вы используете коллекцию вместо кеша, заключается в использовании CachedRowSet вместо ResultSet. CachedRowSet - это Subinterface ResultSet, но данные уже кэшированы. Это намного проще, чем записать все данные в ArrayList.
CachedRowSets также могут быть запрошены сами.
CachedRowSet rs;
.......................
.......................
Integer id;
String name;
while (rs.next())
{
if (rs.getInt("id") == 13)
{
id = rs.getInt("id");
name = rs.getString("name"));
}
}
Таким образом, вы просто вызываете CachedRowSet всякий раз, когда вам нужна информация. Это почти так же хорошо, как нарезанный хлеб. :)
EDIT:
Там нет установленных методов ResultSet, в то время как существуют методы обновления. Проблема с использованием метода Update для восстановления ResultSet заключается в том, что для этого требуется выбрать строку для обновления. Как только ResultSet освободится, все строки имеют значение null. Нулевую ссылку нельзя вызвать. Список списков имитирует сам ResultSet или, вернее, массив массивов, имитирующих ResultSet.
В то время как векторы являются потокобезопасными, к ним прилагаются огромные накладные расходы. Вместо этого используйте ArrayList. Когда каждый вложенный список создается и помещается во внешний список гнезд, вставьте его таким образом.
nest.add(Collections.unmodifiableList(nested));
После всех вложенных списков вставлены, возвратите список гнезда как umodifiableList, а также. Это даст вам потокобезопасную коллекцию без накладных расходов векторов.
Я вижу, что вы новичок здесь, поэтому вам нужно потратить время, чтобы посмотреть на систему тегов на месте. Многие из нас смотрят только на определенные теги. Я только нашел ваш вопрос после того, как он был восстановлен с помощью Java Tag. Правильно помечая ваши вопросы, вы получите гораздо лучшие ответы. – WolfmanDragon
ohh Я не знаю об этом .. Спасибо Wolfman –