|
|
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Есть код... ну, вот в таком упрощённом виде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Попытка понять причины ни к чему не привела. Переустановка mysql, java, jdbc-mysql-connect и c3p0 ни к чему не привела. Последние проверялись в нескольких версиях, а те, что работали исправно раньше, и новые, как бинарники, так и собранные из сорцов. Есть мысли, куда копать? Облом произошёл явно вне пределов проекта, ибо в один прекрасный день перестал работать (без всяких его модификаций) сервер, который непрерывно был запуще в течении двух месяцев, с рестартами каждые четыре часа. Установить, что в этот момент менялось и обновлялось на сервере нереально... менялось всё (emerge -e world на Gentoo :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 19:10:41 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
в линеечку поигрываем? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 21:29:48 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
если предположить что этот ваш сервер работал все это время без глюков а затем внезапно стал глючить - проблема в самой БД, вдруг в нее как нибудь протиснуллись какие нибудь SQL-injections? (разумеется не через PreparedStatement т.к. через него это не возможно, а в другом месте проги, где использвались другие вещи) PreparedStatement по моему использует тот порядок параметров который указывается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 21:46:38 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
unicornmirageв линеечку поигрываем? :) Да. L2 Fortress. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 22:32:30 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
>если предположить что этот ваш сервер работал все это время без глюков а затем внезапно стал глючить - проблема в самой БД, вдруг в нее как нибудь протиснуллись какие нибудь SQL-injections? Все запросы из этой же таблицы "вручную" работают. Более того, забыл упомянуть. Если параметр вписать не по setString/setInteger, а прямо в строку, вместо соответствующего "?", в т.ч. простым сложением - всё работает. Т.е. проблема именно в этих методах. >PreparedStatement по моему использует тот порядок параметров который указывается... Да, естественно. Но вот тут - что-то сломалось. Что - не представляю, так как, уже упоминал, переставил буквально всё :-/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 22:34:36 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
надо посмотреть класс, который наследует интерфейс PreparedStatement, может какая нибудь кривая версия драйвера? какая то странная ошибка на первый взгляд. нужно копать по методу дедукции :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 10:38:35 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
а если заменить все setString на setObject? или setBytes? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 10:39:51 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Кажется, лыжи не едут. Взял совсем другую машину, другая БД, другая версия mysql, и, вообще, amd64, в то время, как топик родился на x86. Слепил отдельный тестик. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. В таком виде, независимо то того что пишем по setString (или setObject), т.е. указывать в качестве ключа можно любую абракадабру, находится одна строка (совершенно левая, но всегда одна и та же.) Если setXXX не использовать - ругается, что не задан параметр. Если setXXX не использовать, а значение ключа вписать вместо "?" в строке запроса - всё находится прекрасно. Пробовал готовый бинарный mysql-connector-java-3.1.12-bin.jar, пробовал самосборный из сорцов jdbc-mysql-3.1.10, результат один и тот же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 15:39:02 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Есть ли какие-нибудь утититы трассировки для MySQL? Чтобы посмотреть, какой именно запрос выполняется на стороне БД. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 15:50:32 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Denis Popov Есть ли какие-нибудь утититы трассировки для MySQL? Чтобы посмотреть, какой именно запрос выполняется на стороне БД. Мне таковые неизвестны :-/ Хотя на тестовой машине сейчас попробую что-нибудь придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:00:36 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Вот, штатный лог mysql на запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Т.е. видно, что прописывается пустая строка :-/ Дальше - больше. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Как видно - та самая путаница порядка аргументов, про которую я говорил. Напомню, что это совсем другая машина, другой набор софта. И на обоих машинах всё остальное с mysql работает отлично (консоль, PHP). Я в недоумении :-/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:17:31 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
BalancerМне таковые неизвестны :-/ Думаю, поиск даст какие-то результаты, даже на местном форуме мо MySQL: /topic/192130 http://www.botik.ru/~rldp/mysql/mysqladm/glava06.htm#Making_trace_files ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:18:32 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, успел раньше послать сообщение, прежде чем увидел последнее письмо:) На странице MySQL Connector/J сказано,что "MySQL Connector/J 3.1 is the old production-ready version of the driver", рядом ссылка на MySQL Connector/J 5.0. Может попробовать с ним? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:26:46 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Denis PopovНа странице MySQL Connector/J сказано,что "MySQL Connector/J 3.1 is the old production-ready version of the driver", рядом ссылка на MySQL Connector/J 5.0. Может попробовать с ним? Обновил. Абсолютно такой же запрос, как в предыдущем сообщении :-/ Т.е. перепутан порядок аргументов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:39:17 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Перед executeQuery добавил Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:42:58 |
|
||
|
Java: Не работают setXXX для установки значения PreparedStatement
|
|||
|---|---|---|---|
|
#18+
Ура!!! Код: plaintext 1. к параметрам uri БД и всё заработало! Спасибо http://community.livejournal.com/ru_java/329335.html?thread=3000439#t3000439 и http://forums.mysql.com/read.php?39,59076,59277#msg-59277 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2006, 16:45:42 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34048781&tid=2147744]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
782ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 1107ms |

| 0 / 0 |
