Java, проходя через набор результатов
116812 просмотра
3 ответа
В Java у меня есть такой запрос:
String querystring1= "SELECT rlink_id, COUNT(*)"
+ "FROM dbo.Locate "
+ "GROUP BY rlink_id ";
Таблица rlink_id содержит эти данные:
Sid lid
3 2
4 4
7 3
9 1
Как извлечь эти значения с помощью Java ResultSet?
Вот что у меня так далеко:
String show[] = {rs4.getString(1)};
String actuate[] = {rs4.getString(2)};
asString = Arrays.toString(actuate);
Автор: user977830
Источник
Размещён: 13.11.2019 11:31
Ответы (3)
36 плюса
List<String> sids = new ArrayList<String>();
List<String> lids = new ArrayList<String>();
String query = "SELECT rlink_id, COUNT(*)"
+ "FROM dbo.Locate "
+ "GROUP BY rlink_id ";
Statement stmt = yourconnection.createStatement();
try {
ResultSet rs4 = stmt.executeQuery(query);
while (rs4.next()) {
sids.add(rs4.getString(1));
lids.add(rs4.getString(2));
}
} finally {
stmt.close();
}
String show[] = sids.toArray(sids.size());
String actuate[] = lids.toArray(lids.size());
Автор: Maurice Perry
Размещён: 04.10.2011 05:28
14 плюса
Result Set
на самом деле содержит несколько строк данных, и использовать курсор, чтобы указать текущую позицию. Так что в вашем случае rs4.getString(1)
вы получите данные только в первом столбце первой строки. Чтобы перейти к следующему ряду, вам нужно позвонитьnext()
быстрый пример
while (rs.next()) {
String sid = rs.getString(1);
String lid = rs.getString(2);
// Do whatever you want to do with these 2 values
}
Есть много полезных методов ResultSet
, вы должны посмотреть :)
-2 плюса
Проблема с вашим кодом:
String show[]= {rs4.getString(1)};
String actuate[]={rs4.getString(2)};
Это будет создавать новый массив каждый раз, когда ваш цикл (а не добавлять, как вы, возможно, предполагаете), и, следовательно, в конце у вас будет только один элемент на массив.
Вот еще один способ решить эту проблему:
StringBuilder sids = new StringBuilder ();
StringBuilder lids = new StringBuilder ();
while (rs4.next()) {
sids.append(rs4.getString(1)).append(" ");
lids.append(rs4.getString(2)).append(" ");
}
String show[] = sids.toString().split(" ");
String actuate[] = lids.toString().split(" ");
Эти массивы будут иметь все необходимые элементы.
Автор: Santosh Размещён: 04.10.2011 06:30Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- java Библиотека Java SWIFT
- java Выключение компьютера
- java Как я могу воспроизвести звук на Java?
- java Когда выбирать отмеченные и непроверенные исключения
- jdbc Как избежать хранения паролей в открытом виде для tomcat server.xml Определение ресурса DataSource?
- jdbc Могу ли я подключиться к SQL Server с помощью аутентификации Windows из веб-приложения Java EE?
- jdbc Как я могу получить размер java.sql.ResultSet?
- jdbc Как выполнить модульное тестирование кода JDBC в Java?
- jdbc Как работает Java PreparedStatement?
- jdbc Параметры пула соединений с JDBC: DBCP против C3P0
- jdbc Проверьте, автоматически ли увеличивается столбец в Sybase с помощью JDBC
- jdbc Почему в JDBC индексы параметров для подготовленных операторов начинаются с 1, а не с 0?
- jdbc Retrieve column names from java.sql.ResultSet
- jdbc ResultSet загружает все данные в память или только по запросу?