Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос из БД 
:(
    Опции темы
Bulat
Дата 13.4.2006, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Вообщем-то еще не приходилось сталкиваться, но рано или поздно придется, да и просто интересно:

Допустим у меня такой запрос: "SELECT elem, element FROM TABLE1 Where element_n = ?"

С одной стороны нужно писать
PreparedStatement pst = con.prepareStatement //потому что
("...Where element_n = ?") ;

С другой стороны
Statement st = connect.createStatement();
ResultSet rs = st.executeQuery //потому что
("SELECT elem, element FROM...");

Или их грамотно надо совместить? Если да то как?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
tux
Дата 13.4.2006, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



PreparedStatement используется если нужно многократно выполнить один и тот же запрос с разными параметрами. Метод prepareStatement() выполняет прекомпиляцию sql-выражения (разбирает запрос и готовит его к выполнению до этапа подстановки параметров) и сохраняет результат прекомпиляции в объект класса PreparedStatement.

Метод createStatement() создает объект класса Statement, у которого подготовка запроса не предусмотрена, то есть он выполняет операции подготовки, подстановки параметров и выполнения одновременно.

При многократном выполнении одного запроса первый метод для большинства СУБД будет работать быстрее.

Это сообщение отредактировал(а) tux - 13.4.2006, 09:09
PM MAIL Skype GTalk Jabber YIM   Вверх
batigoal
Дата 13.4.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(tux @ 13.4.2006, 10:07 Найти цитируемый пост)
При многократном выполнении одного запроса первый метод для большинства СУБД будет работать быстрее.

Неужели есть базы, для которых он будет медленее?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
tux
Дата 13.4.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Lamer George @ 13.4.2006, 17:08 Найти цитируемый пост)
Неужели есть базы, для которых он будет медленее?

Медленнее думаю нет, а примерно одинаково по времени вполне если прекомпиляция не реализована.
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.