Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|

Ответ: Свой слайд я решил не перегружать. Я поставил только те методы, которые считаю основными. Вот этот список.
· 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 месяце беременности, не изменяются в течение жизни...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!