|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
Подскажите плз. Мне нужно удалять из таблицы строку. Название таблицы я получаю отдельно. У меня есть две идеи но не одна не работает. Выбрасывает с ошибкой, что не найдено word(Но если указать word в кавычках "" то сработало бы, только я не знаю как их добавить в String sql). Код: java 1. 2. 3. 4.
Тут почему-то не вообще не принимает аргументы 1 и 2. Код: java 1. 2. 3. 4. 5.
Решил проблему так: "DELETE FROM " + bName +" WHERE EN = [%s]" Но все же хотелось бы узнать почему не работает второй вариант с "preparedStatement"? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 21:46 |
|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
BogdanSh, В первом случае, строковые литералы заключаются в одинарные кавычки, а не квадратные скобки или двойные кавычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 21:49 |
|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
VSVLAD, Действительно. Работает. Спасибо. Дело в том, ранее я создавал таблицу и для создания таблицы с числовым именем его надо было указывать в квадратных кавычках[]. Вот я и подумал...точнее не подумал... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 21:58 |
|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
Насколько я понимаю, имя таблицы не может быть параметром запроса. Запрос, перед исполнением, нужно скомпилировать, а для этого нужно точно знать имя таблицы - чтобы построить план исполнения, проверить наличие полей в таблице, и т.д. Т.е. имя таблицы должно быть известно до компиляции. А параметры становятся доступными для присваивания только после компиляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 23:04 |
|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
... потому второй вариант и не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 23:06 |
|
Java JDBC\PreparedStatement передача аргумента.
|
|||
---|---|---|---|
#18+
MrCat, Да вы правы идет обращение к базе до указания имени таблицы из-за этого и ошибка. Вывод лучше использовать String. format . из java doc: "If the driver supports precompilation, the method <code>prepareStatement</code> will send the statement to the database for precompilation." ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2015, 00:42 |
|
|
start [/forum/topic.php?fid=54&fpage=10&tid=2008689]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 123ms |
0 / 0 |