Similar presentations:
JDBC - платформенно независимый промышленный стандарт взаимодействия Java приложений с реляционными базами данных
1.
JDBCastondevs.ru
2.
JDBCJDBC — это платформенно независимый промышленный стандарт взаимодействия Javaприложений с реляционными базами данных. Впервые был включен в состав JDK 1.1 в 1997 году.
JDBC управляет:
● подключением к базе данных;
● выдачей запросов и команд;
● обработкой данных, полученных из базы
Главным принципом архитектуры является универсальный способ
общения с разными базами данных. Т.е. с точки зрения приложения на
Java общение с Oracle или PostgreSQL не должно отличаться.
* Сами SQL-запросы могут отличаться за счет разного набора функций
для дат, строк и других. Но это уже строка запроса другая, а алгоритм и
набор команд для доставки запроса на SQL-сервер и получение данных
от SQL-сервера отличаться не должны.
3. Архитектура
Driver – Основная задача данного класса – установлениесоединения с БД (буквально один значимый метод в АПИ
connect(url, props))
DriverManager – Является уровнем управления в JDBC и
находится между пользователем и драйверами. Он
отслеживает все доступные драйверы и управляет
установлением соединений между БД и соответствующим
драйвером.
Connection – Позволяет: отправлять запросы к бд,
управлять транзакциями, предоставляет доступ к
метаданным.
Statement – Используется для выполнения sql запросов и
вызова функций.
ResultSet – Предоставляет результат выполнения
запроса/вызова функции.
4.
Этапы подключения к БДЭтапы подключения к базе данных
1. Установка базы данных на сервер или выбор
облачного сервиса, к которому нужно
получить доступ.
2. Добавляем зависимость на JDBC.
3. Добавляем зависимость конкретной
реализации JDBC (на пример Postgres).
4. Установление соединения с базой данных с
помощью библиотеки JDBC.
5. Использование установленного соединения
для выполнения команд SQL.
6. Закрытие соединения после окончания
сеанса.
5.
StatementsStatement
PreparedStatement
CallableStatement
Он используется для выполнения
обычных статических SQL-запросов.
Он используется для выполнения
параметризованных или
динамических SQL-запросов.
Он используется для вызова
хранимых процедур.
Предпочтительно, когда конкретный
SQL-запрос должен выполняться
только один раз.
Предпочтительно, когда конкретный
запрос должен выполняться
несколько раз.
Предпочтительно, когда должны
выполняться хранимые процедуры.
Вы не можете передавать параметры
в SQL-запрос с помощью этого
интерфейса.
Вы можете передать параметры в
SQL-запрос во время выполнения,
используя этот интерфейс.
С помощью этого интерфейса вы
можете передавать 3 типа
параметров. Это - IN, OUT и IN OUT.
Этот интерфейс в основном
используется для операторов DDL,
таких как CREATE, ALTER, DROP и т.
Д.
Он используется для любого типа
SQL-запросов, которые должны
выполняться несколько раз.
Он используется для выполнения
хранимых процедур и функций.
Производительность этого
интерфейса очень низкая.
Производительность этого
интерфейса лучше, чем у
интерфейса Statement (когда он
используется для многократного
выполнения одного и того же
запроса).
Производительность этого
интерфейса высока.
6.
Вопрос на 1 баллПочему PreparedStatment производительнее Statement?
7.
Вопрос на 1 баллКакой из Statement’ов может защитить от sql инъекции?
8.
ResultSet• Является результатом выполнения
запроса/вызова функции.
• Имеет курсор, который указывает
на позицию перед следующей
строкой. Изначально до 1 строки.
• Имеет метод next() который,
который перемещает курсор на 1
позицию и возвращает true, если
есть еще не обработанные строки,
false если строки закончились
• Предоставляет API получения
данных из результирующей строки.
9.
10.
Транзакции в JDBC• Auto-commit mode – мод при котором все sql запросы будут сразу,
автоматически закомичены.
• Commit
• Rollback – откат транзакции до ранее закомиченной или до save point.
• Save Point – некий чекпоинт в транзакции, к которому можем выполнить
rollback.
• Isolation level
database