Вопрос: Сколько методов у этого объекта? — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Вопрос: Сколько методов у этого объекта?

2022-10-10 45
Вопрос: Сколько методов у этого объекта? 0.00 из 5.00 0 оценок
Заказать работу

Ответ: Свой слайд я решил не перегружать. Я поставил только те методы, которые считаю основными. Вот этот список.

· close() – обязательный.

Не хотите писать close()? – tryс ресурсами. Следующий момент – транзакции. Они нам нужны? Да, чтобы участвовать в распределенных транзакциях, то этот объект слабоват. А какой объект подходит? Я этот слайд (DataSourceObject)пропустил. Не стал про него рассказывать, когда мы выполнялся в JNDI регистрацию, мы создавали объект DataSource. Он посерьезнее будет. Вот он как раз позволяет реализовать понятие пула и вот они распределенные транзакции. Поэтому конечно наш простенький вариант с просто с Connectionподдерживает локальные транзакции. Но их нужно немножечко настраивать. Любое ваше действие, которое вы выполняете с объекта Connection, то если оно успешно выполнено, оно сразу фиксируется в БД. Это называется режимом autocommit. Сказали: «Удали запись». Всё. Она удалена, это сохранено и это зафиксировано в изменениях СУБД. Это autocommit.

Если вы считаете, что транзакции – это должно быть не одно действие, а несколько, то (мы про это поподробнее поговорим в конце) нужно будет для начала вызвать setAutocommit и поставить ему false, тем самым отменить автоматическое принятие каждого действия и самим начинать управлять. А самим начинать управлять – это значит, когда вы выполнили все действия и вы считаете, что сейчас надо завершить (принять окончательный результат), то вот – второй метод на этом слайде – commit(). Если пошло все плохо, надо ли вызывать rollback()? Нет, не надо. Если пошло все плохо, то он и без вас об этом догадается и все откатит. Нужно вызвать commit(). Вот если вы его не вызовете, тогда все будет откачено.

Идем дальше… Что вам нужно обязательно еще настраивать и делать? Обратите внимание, есть такие методы: getCatalog() и setCatalog(). Это можно изменить имя базы данных. У нас БД AdventureWorks. А допустим вы знаете, что там есть еще другая база. Вы подключились – у вас AdventureWorks, а можете переключиться с помощью метода setCatalog() на другую БД и работать с ней. Такая возможность существует. Просто с интерфейса Connectionможно перейти на другую реляционную БД, которая внутри этого движка существует.

Еще важный момент. А хотите ли вы получить какую-то подробную информацию об устройстве самой БД? Да. Если хотите есть такой вызов: getMetaData(). Там отдельно потом будет расписано, что вы получаете и какие у вас есть возможности. Это будет практически первый запрос, который мы сделаем именно для того, чтобы посмотреть информацию об устройстве. Ну, например, вас интересует имена таблиц, которые там есть или имена поставок, да все, что угодно.

Как вы получите сообщения об ошибках? SQLException. Но те, кто работал с БД вы помните, что у нас есть информационные сообщения, которые может выдавать СУБД. У нас есть предупреждения (warnings). Если происходит грубый error (SQL код некорректный предоставили), то происходит ошибка, и у вас инфраструктура JDBCвидя уровень серьезности ошибки (от 10 и выше), он оборачивает эту ошибку в виде SQLException. А если это просто информационное сообщение? Это было бы странно, если все нормально, но вас БД о чем-то информирует, а тут раз и вылетает Exception. Это некорректно. Поэтому если происходит какое-то подобное сообщение от сервера БД, которое с уровнем серьезности ниже 10, то вы их в целом не увидите. Ни в исключениях, никак. А вот метод getWarnings() и позволяет до этого добраться.

У нас вообще есть программисты, которые знают SQL, как родной? Там же есть в SQLкакая-то команда, которая позволяет клиенту отправить какое-то информационное сообщение? Вот если вы отправите его, то с помощью getWarnings() вы увидите его в Java-code.

Ну и самое главное, конечно, для нас – это как запрос начать формировать. Вот для запроса, здесь есть три метода.

· prepareCall()

· prepareStatement()

· createStatement()

У вас есть три варианта, как начать взаимодействовать с БД. Почему они так сделали? Потому что у них сверху есть три разных интерфейса, которые обладают разным функционалом. И если посмотреть слева направо: Statement, PreparedStatement, CallableStatement, то функционал, который за каждым из этих интерфейсов, он идет по нарастающей. Все эти интерфейсы выстроены в иерархию. Все, что есть в createStatement(), есть в prepareStatement() и т.д. Но если двигаться вправо, то функционала становится все больше, больше и больше.

Простые запросы – это Statement. Соответственно для простых запросов Statement. С чего мы и начнем.


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.