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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с запросом для MySql на Java 
:(
    Опции темы
unkis
Дата 24.3.2005, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



Ребята нужно проверить существует ли элемет или нет, и как резултат получить значения tru или false.



Зарания благодарен.



--------------------
www.unkis.com
PM MAIL WWW   Вверх
LSD
Дата 24.3.2005, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Что подразумевается под "элементом"? Строка, в таблице, объект БД или что-то еще?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
unkis
Дата 24.3.2005, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



Под элементом я подрозумеваю строку в таблице.
у меня есть таблица X, вней есть какие-то поля и одно из них поле kay. так вот мне нужно по ключу проверят если есть, то что я дам, тогда не добовлять в таблицу, если же нет (т.е. false) ,тогда добавить в таблицу.






--------------------
www.unkis.com
PM MAIL WWW   Вверх
LSD
Дата 24.3.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
public boolean test(java.sql.Connection connection, String table, String column, Object value) throws SQLException
{
  PreparedStatement ps = connection.prepareStatement("select count(*) from " + table + " where " + column + " = ?");
  ps.setObject(1, value);
  ps.execute();
  ResultSet rs = ps.getResultSet();
  rs.next();
  if(rs.getInt(1) > 0)
  {
    rs.close();
    return true;
  }
  else
  {
    rs.close();
    return false;
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
unkis
Дата 25.3.2005, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



А это что такое Object value и ps.setObject(1, value);?


--------------------
www.unkis.com
PM MAIL WWW   Вверх
ZAVS
Дата 25.3.2005, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

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



Цитата(unkis @ 25.3.2005, 01:18)
Object value
-параметр типа Object

после вызова этого метода
Цитата(unkis @ 25.3.2005, 01:18)
ps.setObject(1, value

значение value сядет вместо первого ? в statmente

Цитата(LSD @ 24.3.2005, 22:59)
select count(*) from " + table + " where " + column + " = ?"


--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
unkis
Дата 29.3.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



Всё таки я не очень понял
вот именно вот эти две вещи, обясните пожалуйста по подробнее.

Код

  =?");
  ps.setObject(1, value);


Зачем там в конце вопросик?


И что не существует простого метода, типо я ему запрос а он мне tru или fals?

Или только так, по другому нелзя?

Это сообщение отредактировал(а) unkis - 29.3.2005, 19:10


--------------------
www.unkis.com
PM MAIL WWW   Вверх
unkis
Дата 29.3.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



Всё работает, но тольк с маленькими выражениями.
почему-то когда я патюсь найти эту строчку
Код

TOYOTA Carina 1. Hand ! 1.8\",\"D-65824, EZ 03/1997, 4/5-Trer, leicht violett, 160.223 km, 79 k


выдаёт false, хотя я знаю что она точно есть, я её скопировал прямо из MySQL, а если ищешь короткую строчку, то без проблем.

Почему так, может кто знает?


Зарания благодарен.

Это сообщение отредактировал(а) unkis - 29.3.2005, 19:30


--------------------
www.unkis.com
PM MAIL WWW   Вверх
LSD
Дата 29.3.2005, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(unkis @ 29.3.2005, 19:09)
Зачем там в конце вопросик?

Это параметризованное выражение, вопрос обозначает то место в выражении где стоит параметр. Мы пишем это SQL выражение, не указывая конкретных значений параметра, естественно если его не указать то будет ошибка. А для того чтобы указать конкретное значение и используется метод ps.setObject(1, value);, поле вызова этого метода драейвер сам сформирует указанное выражение (подставит значение, проведет преобразование типов если нужно и т.д.). Мы може выполять одно и то же выражение с разными значениями параметра, при этом здорово экономится время на разбор выражения.

Цитата(unkis @ 29.3.2005, 19:09)
Или только так, по другому нелзя?

Можно, но тогда самому придется возится с определением типов, преобразованиями, формированием литералов. Т.е. если это дата, то нужно будет самому ее форматировать в формат понятный для БД, в строках надо будет маскировать ковычки и т.д.

Цитата(unkis @ 29.3.2005, 19:29)
выдаёт false, хотя я знаю что она точно есть, я её скопировал прямо из MySQL, а если ищешь короткую строчку, то без проблем.

Почему так, может кто знает?

Если брать кавычки работает? Работает ли из SQL клиента?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
unkis
Дата 29.3.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

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



странно, вдруг всё заработоло.

Большое спасибо.

ps.setObject(1, value);
Хорошо Values это то значаени которое мы подставляем, а что тагда означает "1"




--------------------
www.unkis.com
PM MAIL WWW   Вверх
LSD
Дата 29.3.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Порядковый номер, параметров может быть несколько. Они нумеруются слева на право, начиная с 1.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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