вопрос касательно java.sql.resultset - PullRequest
1 голос
/ 27 декабря 2010

У меня вопрос по поводу jdbc Resultset.

Мне нужно взять несколько записей в одной из таблиц. После поиска записей, как мне искать записи в ResultSet со списком идентификаторов?

Должен ли я сначала преобразовать набор результатов в хэш-карту?

Ответы [ 5 ]

2 голосов
/ 27 декабря 2010

После получения записей, как мне искать записи в ResultSet со списком идентификаторов?

Это неправильный способ сделать это.Вы должны выполнить поиск и фильтрацию в своем запросе SQL, прежде чем получите ResultSet.

Впоследствии, предполагая, что у вас есть ResultSet rs, выполните итерацию по нему, используя

while (rs.next()) {
   // do whatever you want with results
}

Выполнение поиска поResultSet -> плохая практика.

1 голос
/ 27 декабря 2010

Предполагая, что вы не хотите изменять запрос SQL, чтобы сначала получать только эти результаты, а затем преобразовывать результаты в более полезную структуру данных (например, создать объект для каждой записи и затем сохранить их в хэш-карте). по идентификатору) это хороший способ, да.

0 голосов
/ 27 декабря 2010

Я согласен, что HashMap будет работать. Если количество записей велико, вы можете сэкономить время и память, не загружая данные ResultSet в какую-либо структуру. Если в запросе вы заказали BY ID, вы можете легко получить данные из ResultSet с помощью rs.next();.

0 голосов
/ 27 декабря 2010

Вы можете пройти через набор результатов через цикл с помощью метода "next ()" [resultSet.next ()].Получить значения с помощью getString (), getInt (), ......

Пример: Пусть rs будет моим набором результатов,

while (rs.next ()) {

Соп ( "имя:" + rs.getString ( "имя"));Соп ( "Возраст:" + rs.getInt ( "возраст"));}

0 голосов
/ 27 декабря 2010

Рассматривайте ResultSet как своего рода интерфейс к вашей БД, ResultSet сам по себе не содержит данных, поэтому ничего не нужно искать.

Так что если вам нужно манипулировать, искать, ... вам лучшечитать все данные в структуру.

Хеш-структура, вероятно, будет лучше, но это зависит от того, как вы структурировали свои данные.

Единственное, что вы не должны делать, это многократно взаимодействовать с ResultSet, потому что, если вы не используете конкретную реализацию кэширования, вы вызовете много ненужного трафика базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...