Финляндия по-русски

Финляндия по-русски (https://www.russian.fi/forum/index.php)
-   Koмпьютeры, Teлeфoны, TV & Co (https://www.russian.fi/forum/forumdisplay.php?f=6)
-   -   Java и MySQL, есть вопрос (https://www.russian.fi/forum/showthread.php?t=32850)

Hnu 30-03-2007 17:13

Java и MySQL, есть вопрос
 
Люди, хелп!

Нигде не могу найти инфу о том, как узнать, сколько строк возвращается в результате выполнения запроса SELECT.

Т.е. есть конструкция ResultSet rs = stmt.executeQuery("SELECT * FROM tableName"), как узнать, сколько строк содержит rs? Есть ли какой специальный метод? Не пересчитывать же строки в цикле...

Мне очень нужно и довольно срочно.

adam 30-03-2007 17:17

http://java.sun.com/j2se/1.4.2/docs.../resultset.html

пользуй rs.next()

ank 30-03-2007 17:24

Цитата:
Сообщение от Hnutik
Люди, хелп!

Нигде не могу найти инфу о том, как узнать, сколько строк возвращается в результате выполнения запроса

Т.е. есть конструкция ResultSet rs = stmt.executeQuery("SELECT * FROM tableName"), как узнать, сколько строк содержит rs? Есть ли какой специальный метод? Не пересчитывать же строки в цикле...

Мне очень нужно и довольно срочно.

JDBC этого не знает. Насчет MySQL не уверен, он, кажется, весь ResultSet разом передает (как сумашедший дятел), но нормальные сервера такого безобразия себе не позволют => в стандартном JDBC такого метода в интерфейсе ResultSet нет.

Как вариант: SELECT COUNT(*) FROM tableName. - универсальный метод.

dispetcher 30-03-2007 17:25

select count(*) from tableName

Успехов!

Hnu 30-03-2007 17:38

Цитата:
Сообщение от adam
пользуй rs.next()

Я его и так пользую. Я знаю, что делаю всё через одно место, но у меня задумка такая, что я сначала хочу узнать, сколько строк вернулось, создать массив именно такого размера (потому что потом с ним ещё много чего надо делать), а потом заполнить его тем, что вернулось, благо меня интересует один-единственный столбец.

Цитата:
Сообщение от dispetcher
select count(*) from tableName

То есть мне писать rs = stmt.executeQuery("select count(*) from tableName") ?
* - это значит "все столбцы", как всегда? хотя мне, собственно, нужен всего один
Так как мне потом узнать кол-ко строк-то?

Сорри, я что-то туплю сегодня.

Hnu 30-03-2007 17:41

Цитата:
Сообщение от adam


А-а-а-а, всё, спасибо! Нашла нужное место! Я этот документ до этого смотрела в русском переводе, так вот часть про строки там опущена! Спасибо! Теперь всё должно получиться. :)

Hnu 30-03-2007 22:25

Всем откликнувшимся огромное спасибо! У меня всё получилось! :)


Часовой пояс GMT +3, время: 03:54.