| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > PrepareStatement |
| Автор: Pantein 25.10.2005, 23:49 |
| Подскажите как вытянуть строку запроса из уже сформированного объекта PrepareStatement перед ее выполнением, просто без этого никак невозможно определить целостность sql-запроса...может есть какой-нибудь нормальный метод, может каких сторонних производителей... |
| Автор: Guest 26.10.2005, 00:29 |
| Можно над Connection свою обертку сделать. |
| Автор: Pantein 26.10.2005, 10:09 |
| такой вариант не подхолит только даже из-за того, что придется рефакторить большой объем кода , а это недопустимо в моем случае. |
| Автор: pvo 26.10.2005, 11:52 | ||
А что под этим понимается? |
| Автор: Pantein 26.10.2005, 12:50 | ||
просто скорее всего создается плохая строка, при попытке выполнения которой все обрывается (почти 100%) -- вот и нужно посмотреть этот запрос (саму строку) и определить "битые" места. |
| Автор: LSD 26.10.2005, 12:59 | ||
1. Смотреть логи самой базы (если поддерживатеся). 2. Попробовать Connection.nativeSQL(). |
| Автор: 3,14 26.10.2005, 13:00 |
| Pantein, пронаследуй PreparedStatement, переопредели методы execute, executeQuery и executeUpdate, в случае Exception-а, выводи сообщения в лог, и кидай исключение выше. |
| Автор: pvo 26.10.2005, 13:19 | ||
Так это ж интерфейс. Нужно обертку писать, а чела ломает это делать. Причем оберток д.б. 2 - одна над Connection, а другая над PreparedStatement Pantein Можно еще попробовать поиграться с http://java.sun.com/products/jdbc/faq.html |
| Автор: Pantein 26.10.2005, 14:20 |
| Спасибо за советы, но меня не то чтобы ломает это все писать, я же говорю, просто есть сейчас довольно большой проект, и получается придется достаточно много кода рефакторить, что немного не позволительно в данном случае, ведь работаю я над проектом не один. ... нашел тут непохую идею -- log4j (правда нормально его настроить это что-то, пишет слишком большие логи 5 мег где-то в минуту), но лучше наверное использовать (как мне подсказади) p6spy (правда еще не пробовал). в принципе проблему разрешил, спасибо всем за советы. |
| Автор: 3,14 27.10.2005, 09:59 | ||||
Да, конечно, именно обёртки
А ты скажи из-за чего придётся менять код, глядишь и придумаем решение, которое не потребует особых изменений. |
| Автор: KostenkoSergey 31.10.2005, 16:29 |
| если ЕЕ - может подойдут системы мониторинга.. типа Optimized ServerTrace от Borland - его юзал- всё замурчательно видно, и какие запросы, и где ошибки и где соединения не закрыты ... слышал также про JProbe ИМХО под задачу ,как я понял, лучше не напишешь |