powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнатьсколько строк вернул запрос?
14 сообщений из 14, страница 1 из 1
Как узнатьсколько строк вернул запрос?
    #39057275
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, написал простую программу, которая должна просто узнать сколько записей в бд по определенному запросу, вот что у меня есть:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class Main {
    public static void main(String[] args) {
        try {
            DriverManager.registerDriver(new Driver());
            Connection c = DriverManager.getConnection("jdbc:mysql://host/dbname", "login", "pass");
            
            Statement s = c.createStatement();
            ResultSet rez = s.executeQuery("SELECT id FROM chel");
            
            
            
            
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}


Подскажите пожалуйста как узнать сколько строк возвращается по моему запросу?
Заранее большое спасибо!
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057294
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
rez .afterLast();
rez .getRow()
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057298
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

А подскажите пожалуйста можно ли как то узнать значение такого запроса:
Код: sql
1.
SELECT COUNT(*) FROM chel;
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057304
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_lax,
число строк в выборке, в данном случае в таблице
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057353
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_laxвадя,

А подскажите пожалуйста можно ли как то узнать значение такого запроса:
Код: sql
1.
SELECT COUNT(*) FROM chel;


Можно. Но не забывай что БД существует в условиях непрерывной жизни
и между COUNT(*) и последующей выборкой будет ненулевой интервал времени
за который в таблицу можно насовать новых строк.

Почитай по ключевым словам: ACID, Isolation (database systems), Snapshot isolation e.t.c., flashback query
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057358
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

Да разве вопрос в этом заключался?
Меня интересовало как это в java узнать. Я думал будет что то типа:
Код: java
1.
int x = rez.getCount();

но ничего подобного я не нашел!
Написал вот так:
Код: java
1.
2.
3.
4.
5.
ResultSet rez = s.executeQuery("SELECT COUNT(*) FROM chel");

while(rez.next()){
System.out.println(rez.getInt(1));
}


Вроде все работает нормально!
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057359
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Спасибо большое обязательно почитаю об этом, на будущее может пригодится, но для моей реализации этим можно пренебречь
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057441
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа разве вопрос в этом заключался?
Меня интересовало как это в java узнать. Я думал будет что то типа:
ну извини не понял значение твоего вопроса
зато ты сам смог и это намного лучше.
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057448
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожно. Но не забывай что БД существует в условиях непрерывной жизни
и между COUNT(*) и последующей выборкой будет ненулевой интервал времени
за который в таблицу можно насовать новых строк.
в любом случае нельзя получить реальное, текущее значение, если база высоконагруженная.

Код: java
1.
SELECT COUNT(*) FROM chel;


вместо * лучше использовать имя столбца, лучше если это будет id.
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057700
xifr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: java
1.
SELECT COUNT(*) FROM chel;


вместо * лучше использовать имя столбца, лучше если это будет id.

А в чём преимущество?
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057712
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xifr,
в скорости.
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057715
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xifrвадя
Код: java
1.
SELECT COUNT(*) FROM chel;


вместо * лучше использовать имя столбца, лучше если это будет id.

А в чём преимущество?

вот не уверен но вроде (по крайней мере postgres) выберет индекс (а id обычно и primary key поэтому там индекс есть) и будет считать сколько всего записей в индексе (а индекс меньше самой таблицы будет по размеру файла и поэтому подсчет будет быстрее), потом проверит уже саму таблицу на живые записи.

но тут сильно все зависит от статистики, в каком состоянии таблица, какова структура таблицы, объем и ее загаженность.
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057720
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяxifr,
в скорости.
Не факт. Depends on plan... Depends on dbms. ..оn DDL script.
...
Рейтинг: 0 / 0
Как узнатьсколько строк вернул запрос?
    #39057941
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сторонник того что к реализации задачи нужно подходить относительно фактического объема и предполагаемого, другими словами если я уверен что в бд будет храниться не больше 10 000 записей, это я с хорошем запасом говорю, реально максимум их там будет 3 - 5 тысяч. 90% всех запросов будет сводиться к выборки записей по определенному условию, т.е. будут выбираться максимум 5 записей. Ну и конечно проектирование нужно сводить к тому чтобы оператор LIKE не использовать.
Зачем из пушки по воробьям стрелять?
P.S. Но это не значит что нужно забивать все советы по оптимизации и начинать писать плохой код.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнатьсколько строк вернул запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]