|
Тестовое задание
|
|||
---|---|---|---|
#18+
llemingвижу assertion failed что именно assertится. Примеры в студию мой метод нужен или тест метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 17:32 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
В твоём исходном коде sample-s приведены для СУБД Oracle. Тесты - почему-то под H2. Как специалист по Oracle я говорю что это в общем случае - неправильно. Это не будет работать по причине несоотвествия диалектов. Грубо говоря некоторый синтаксис ("SELECT * FROM DUAL" e.t.c.) существует только в Oracle. В твоём случае можно использовать только базовое подмножество Ansi SQL которое во всех СУБД одинаково. Видимо на это расчитан модуль 13 учебного плана. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 18:23 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
+Заходи дебаггером в тест и смотри где он вываливается из утверждения (assert). Например. Первое нарушение теста я вижу здесь. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Тоесть вставка Джека Бауера в табличку не прошла. Далее - иди отладчиком и смотри почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 18:25 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Далее. Как учить SQL по H2. На официальном сайте где -то http://www.h2database.com/html/main.html есть описание веб-интерфейса. Вот запускай его. Вводи туда все команды и смотри эффект. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 18:28 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
mayton+Заходи дебаггером в тест и смотри где он вываливается из утверждения (assert). Например. Первое нарушение теста я вижу здесь. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Тоесть вставка Джека Бауера в табличку не прошла. Далее - иди отладчиком и смотри почему. потому что Id null даже если вручную просто цифру поставить будет null хотя тот же запрос черех веб интерфейс создает спойконо эту запись в бд ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 18:53 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
эта хрень просто отказывается id принимать.только через веб интерфейс ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 19:05 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
вообщем в вебинтерфейсе этой базы все принимает и записывает значит проблема не в SQL запросе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
а вот где то тут либо знаки вопроса ,либо екзекутит не так чего то фиг его знает короче по дебагеру видно что присваиваются все значения куда положено не пойму почему этот метод не делает запись ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 19:18 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
причем вебинтерфейс спокойно скушал Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 19:26 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
сделал уже напрямую Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
не записывает даже так .это какая то дичь ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 19:33 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
вообщем какая то жесть жестяная пришел домой у меня там идея ультимейт ,тоесть можно с базами из нее рабоать такая команда напряму рабоатает Код: java 1.
а вот этот говнометод не рабает) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
я уже убрал даже аргументы пока ,просто в ручную набиваем значения- все равно болт. как такое вообще возможно пробовал и prepared statment и просто statement есть то 3 строчки кода ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 20:21 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79, Бумага для теста мягкая ? Если да, то подотрись и слей в унитаз, никому эту хрень не показывай. И никогда не выполняй тестовых заданий. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 20:48 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Компостеров, Это было грубо чувак. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 21:41 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Компостеровasv79, Бумага для теста мягкая ? Если да, то подотрись и слей в унитаз, никому эту хрень не показывай. И никогда не выполняй тестовых заданий. это не тестовые задания))это моя работа) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 22:40 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
короче я добиля того чтобы все записывалось в базу,но почему вот эта строчка Код: java 1.
возвращает false ,ведь запись то произошла . что за бред ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 00:03 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
вообщем добил таки) кому интересно суть была в отсутсвии коннекта ,хотя два других теста спокойно работали. далее тест не зеленел ,потому что execute() возвращает false всегда и нужно использовать executeUpdate() теперь все работает ,в базу пишет и зеленеет Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
хотя очень странно почему соедениние из тестов не подхватывается ,ведь в двух других тестах,где я ищу по id и по имени все работает без создания нового подключения ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 00:31 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79кому интересно суть была в отсутсвии коннекта Да ладно?? asv79хотя очень странно почему соедениние из тестов не подхватывается ,ведь в двух других тестах,где я ищу по id и по имени все работает без создания нового подключения Скорее всего где-то закрывается оно P>S Код: java 1. 2.
пиши лучше так Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 00:39 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл ник,немного подшаманил Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
но все равно не понимаю почему два других теста работают без создания коннекта заново,там же тоже закрываются соединения. в самом тесте есть вот такая строчка Код: java 1. 2. 3. 4.
тобишь соединение то передается ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 01:06 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79, дружище а ответь мне где у тебя происходит commit транзакции? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 10:22 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
maytonasv79, дружище а ответь мне где у тебя происходит commit транзакции? ахх майтон ну красавец)) вот где была собака то зарыта Код: java 1.
это строчка кода из тест файла флаг стоял false поменял на true и теперь не нужно каждый раз создавать соединение при новой записи) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 13:07 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Состояние БД квантовано по транзакциям. Если ты начал транзакцию но не закончил ее коммитом то другие сессии (другие Коннекшены) твою работу не увидят. Это оуено важное свойство БД и на этом палятся все новички. Команды insert/update/delete/merge не являются транзакциями. Они являются некими DML-операциями в рамках одной большой (обычно транзакции). Ставить авто-коммит - это не круто т.к. бедная БД будет вынуждена фиксировать операцию а это форсирует некоторые накладные расходы. Особенно сильно это влияло на дисковые СУБД класса реляционных. В таких СУБД как Оракл к примеру вообще нет понятия авто-коммит. Хотя некоторые среды такие как PLSQL Developer, SQLNavigator, DBVisualizer позволяют включать авто-коммит но это плюшка клиента а не сервера. Особенно это опасно в блоках Exception, если ты не дал rollback то вставленная строка с одной стороны - невидима для всей системы. С другой стороны она - блокер для других повторных операций. Транзакция в Java умерла по ошибке но с точки зрения БД она еще НЕ ЗАВЕРШЕНА и поэтому заблокированы повторные попытки к примеру сделать UPDATE. Я отрастил немало седых волос борясь с побочными эффектами транзакций в Java-приложениях. Вообще понимание работы SQL/ORM/DBMS - это сразу +1 уровень синьорити. Хотя некоторые современные системы хранения или кеширования информации Redis/Memcached/Berkeley могут игнорировать длительность транзакции считая операцию транзакцией. На это надо внимательно читать доку. Как оно там реализовано. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 13:18 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
maytonСостояние БД квантовано по транзакциям. Если ты начал транзакцию но не закончил ее коммитом то другие сессии (другие Коннекшены) твою работу не увидят. Это оуено важное свойство БД и на этом палятся все новички. Команды insert/update/delete/merge не являются транзакциями. Они являются некими DML-операциями в рамках одной большой (обычно транзакции). Ставить авто-коммит - это не круто т.к. бедная БД будет вынуждена фиксировать операцию а это форсирует некоторые накладные расходы. Особенно сильно это влияло на дисковые СУБД класса реляционных. В таких СУБД как Оракл к примеру вообще нет понятия авто-коммит. Хотя некоторые среды такие как PLSQL Developer, SQLNavigator, DBVisualizer позволяют включать авто-коммит но это плюшка клиента а не сервера. Особенно это опасно в блоках Exception, если ты не дал rollback то вставленная строка с одной стороны - невидима для всей системы. С другой стороны она - блокер для других повторных операций. Транзакция в Java умерла по ошибке но с точки зрения БД она еще НЕ ЗАВЕРШЕНА и поэтому заблокированы повторные попытки к примеру сделать UPDATE. Я отрастил немало седых волос борясь с побочными эффектами транзакций в Java-приложениях. Вообще понимание работы SQL/ORM/DBMS - это сразу +1 уровень синьорити. Хотя некоторые современные системы хранения или кеширования информации Redis/Memcached/Berkeley могут игнорировать длительность транзакции считая операцию транзакцией. На это надо внимательно читать доку. Как оно там реализовано. понятно) ну а в моем случае какое решение-изменит тест как я изменил? или каждый раз новый коннекшен подымать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 13:28 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Я-бы добавил ручной коммит Код: java 1. 2. 3. 4. 5. 6. 7.
А в блоке исключений - соотв conn.rollback(). И соединение я-бы получал не через DriverManager.getConnection а из пула коннектов. Впрочем это уже тонкая настройка перформанса и от тебя такую здесь не потребуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 13:33 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
maytonЯ-бы добавил ручной коммит Код: java 1. 2. 3. 4. 5. 6. 7.
А в блоке исключений - соотв conn.rollback(). И соединение я-бы получал не через DriverManager.getConnection а из пула коннектов. Впрочем это уже тонкая настройка перформанса и от тебя такую здесь не потребуют. поставил флfu сетавтокомит false и сделал вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
все работает) век живи век учись,хотя я про эти комиты не читал ничего и в уроке по которому я делаю это задание тоже не слова про коммиты ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 13:44 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79все работает) век живи век учись,хотя я про эти комиты не читал ничего и в уроке по которому я делаю это задание тоже не слова про коммиты разве цель урока была выучить автокоммиты, но раз уж коде используется jdbc то вполне себе полистать официальный туториал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 13:20 |
|
|
start [/forum/topic.php?fid=59&msg=39826727&tid=2121251]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
293ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 646ms |
0 / 0 |