|
|
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#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. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:07 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:16 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Если на самом деле происходит исключение, было бы нравственно вывести в консоль StackTrace и привести его здесь. И учитесь пользоваться параметризированными запросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:16 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Вообщето в таких случаях удобно пользоваться PreparedStatement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:17 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
параметризированными запросами - это что такое? PreparedStatement - это как? Сорри что я такой неуч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:44 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
}catch(SQLException se){} } так никогда не писать. Кто пишет - тому по башке. Исключение надо обрабатывать, то есть например, как минимум выводить сообщение о его причине: }catch(SQLException se){ System.out.println ("ошибка тута:" + e.getMessage ());} } тогда подобных вопросов станет намного меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 20:19 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
fidelпараметризированными запросами - это что такое? PreparedStatement - это как? Сорри что я такой неуч. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 00:22 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Роман и Partisan M, огромное вам спасибо за советы, обязательно учту. А насчет использования PreparedStatement, я так понял что это делается для более удобного чтения кода или может я что-то неправильно понял? В любом случае спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 08:25 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Роман опечатался, не везде единичка - Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 09:54 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
fidel А насчет использования PreparedStatement, я так понял что это делается для более удобного чтения кода или может я что-то неправильно понял? Это делается для ускорения повторных запросов, для предотвращения SQL Injection, для более строгой и предсказуемой логики построения запросов ... Кстати, если я ничего не путаю, то в приведенном вам примере: s.setString(1, firstname); s.setString(1, lastname); s.setString(1, nickname); s.setInt(1, editid); случайно вкралась ошибочка, надо: s.setString(1, firstname); s.setString(2, lastname); s.setString(3, nickname); s.setInt(4, editid); А connection.rollback(), если при этом ошибка возникла в атомарной транзакции, как в примере, не имеет смысла - по крайней мере, я не могу припомнить ни одной базы данных, которая в этом случае не откатила бы транзакцию сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 09:57 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Здесь цифра 2 это номер подставляемого значения в заросе или номер поля в таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 10:50 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
номер вопросика (?) в твоём preparedStatement, т.е. подставляемого значения.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 11:01 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
млин не работает все равно, может ошибка не в методе UpdateUserAccount? А кто нить проверял этот метод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 12:32 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Понимаю, что уже наверно всех замучал, но воте еще вопрос возник, может я неправильно в jsp, условие пишу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 13:18 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
а в чем собственно вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 13:21 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Вопрос собствено в том что не работает выше описаный метод в бине, кто нить его проверить может? может проблема на уровне самой БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 14:25 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
НЕЛЬЗЯ так использовать бины. В бинах должны быть только set/get методы, для свойств объекта! Все операции с БД долны быть вынесены в отдельный класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 14:31 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
ТимоН, во многих книгах, (хотя книги конечно не показатель) запросы к БД засовывают в бины. Хорошо допустим я последую Вашему совету, и выкину из бина всю логику, тогда куда мне девать sql запросыб т.е. мою логику? Ну не в сервлеты ни в jsp ее не сунешь, естественно. Куда тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 14:46 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Какой Exception? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 14:59 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
2Тимон - Сори, немного тупанул в прошлом посте, т.е. я так понял что бины только для хранения параметров, а логику надо просто сувать в отдельные классы - это будет считаться хорошим тоном? Наверно в книгах, что то не так, вот книженция - где приводиться пример MVC и бин состоит практически из одних запросов к БД. а скачать ее можно: http://aleria.net/0/0/4/4/3/2/J/f475118e2be9a023fc2de10f7a6d5d26 Exceptiona нет никакого, тока вот на jsp странице выводиться "error! user is not update". см.выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:13 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Может у тебя внутри метода исключение. Попробуй debug, и все вопросы отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:18 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
а в консоли сервера приложений посмотри exception, должен быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:20 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
fidel .. во многих книгах, (хотя книги конечно не показатель) запросы к БД засовывают в бины. Хорошо допустим я последую Вашему совету, и выкину из бина всю логику, тогда куда мне девать sql запросыб т.е. мою логику? Ну не в сервлеты ни в jsp ее не сунешь, естественно. Куда тогда? 1. Вообще-то, то что вы используете в примере вполне может быть самым обычным классом, причем тут вообще бин, если нет желания использовать сеттеры и геттеры? 2. Чем вам не понравился сервлет для инкапсуляции логики в контексте примера также абсолютно не ясно. 3. request.getParameter("firstname,") - вот этого при использовании бина вообще быть не должно бы ..., я уж не говорю про загадочную запятую в имени параметра (может это так и было задумано, но сомнительно). 4. За исключением editid, совершенно неясно где вы нашли все остальные переменные - UpdateUserAccount(editid,lastname,lastname,nickname)) (lastname,lastname,nickname - это откуда? Творческое использование имен параметров в качестве переменных?). Вы сами-то пробовали скомпилировать свой пример? 5. В книгах в бины засовывают не столько запросы к базе, сколько входные/выходные параметры. Послушайте добрый совет - засовывайте GUI в тэги, логику в сервлеты и JSF. Когда поймете, что именно не нравится в сервлетах, смысл бинов проявится сам собой (если вообще возможностей JSF/аналогов не хватит с головой) - не такое уж это откровение и ничего революционного они не дадут (ну разве что плохо представляю как писать собственные тэги с атрибутами, не используя set and get методы)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:29 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Да, для ясности, я говорил про обычные бины, EJB - это немного другая кухня, заточенная под базы данных. Вот тут уж, действительно и параметры и сами запросы и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:39 |
|
||
|
Где ошибка (JDBC)?
|
|||
|---|---|---|---|
|
#18+
Кстати, первоначальный код у него правильный. Как-то для проверки хотел "напрямую" изменить в таблице базы значение через UPDATE (пользуюсь я OJB, но из-за вопросов кодировок не знал, в какой момент она меняется - грешил на OJB). Не использовал никаких бинов, просто знал, что я меняю, где я меняю и на что я меняю и фактически запрос был одной стринговой строкой (чтобы вы не думали, что ошибка вкралась в формирование строки запроса). Коннект произошел нормально, запрос - нет. После выпадения exception долго дебаггил. Так вот ошибка происходит на стадии парсинга запроса. Причем хитро: определило первую букву ("U"), взяло из своего списка стринг UPDATE, и при первом же действии trim или split (не помню точно - не буду врать) сработало exception. Причем именно SQLException. Видимо, существуют дополнительные рамки выполнения запроса UPDATE функциями statement.execute или statement.executeUpdate. Так что дело тут не в коде. Вернее, в специфическом использовании кода ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33938278&tid=2148329]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 329ms |

| 0 / 0 |
