‹#›
Анна Єщенко
Java AQA Engineer
30.04.2024
SpringJDBС vs JDBC. Чи, дійсно, Spring - герой?
Порівнюємо роботу з базою даних
Agenda
Основні поняття JDBC
1.
Розподіл логіки за класами
2.
Порівняння використання стандартного JDBC та
SpringJDBC
3.
‹#›
Таблички бази даних для прикладу
‹#›
Йдемо у код...
‹#›
Основні терміни JDBC
‹#›
Приблизний набір дій...
Встановили зв’язок (Connection) з базою;
Перетворили об’єкт в строку, використовуючи Mapper;
Виповнили sql-запит, використовуючи Statement;
Обробили ResultSet, використовуючи Mapper;
Закрили Connection, Statement, ResultSet;
‹#›
Передача даних з програми і навпаки
‹#›
Йдемо у код...
‹#›
Розподіл логіки за класами...
Service
викликає репозиторіі
перевіряє отримані
об’єкти Mapper
конвертація об’єктів у
строки таблиць
і навпаки
POJO
Plain Old Java Object
(класи-об’єкти)
Repository
відкриває/закриває
зв’язок з БД
зберігає SQL-запити
викликає мапери
‹#›
Йдемо у код...
‹#›
Розподіл логіки за класами...
Service
викликає репозиторіі
перевіряє отримані
об’єкти Mapper
конвертація об’єктів у
строки таблиць
і навпаки
POJO
Plain Old Java Object
(класи-об’єкти)
Repository
відкриває/закриває
зв’язок з БД
зберігає SQL-запити
викликає мапери
DTO
перенести дані
‹#›
Йдемо у код...
‹#›
Міркування
AutoCloseable...
Hibernate...
Daily pipelines...
Inheritance,
composition...
Many-to-many...
‹#›
Spring фреймворк
‹#›
Йдемо у код...
‹#›
JDBC SpringJDBC
DriverManager
DataSource
Pooled Connection
DataSource
Smart DataSource
Single Connection DataSource
DriverManager DataSource
Transaction Aware DataSource Proxy
DataSource Transaction Manager
Сервіси підключення до БД
‹#›
JDBC SpringJDBC
Statement
Prepared
Statement
Callable
Statement
не приймає
параметрів
приймає
параметри
для
збрежених
процедур
спрощує роботу
через карту
параметрів
використовує
іменовані
параметри
приймає
параметри
JDBC
Template
NamedParameter
JDBC
Template
Simple
JDBC
Insert
‹#›
Йдемо у код...
‹#›
Робота, яку забирає на себе Spring
‹#›
JDBC Spring
JDBC
‹#›
Робота, яку забирає на себе Spring
‹#›
JDBC Spring
JDBC
‹#›
Робота, яку забирає на себе Spring
‹#›
JDBC Spring
JDBC
‹#›
JDBC
Sql Exception
checked
Data Access Exception
unchecked
Spring JDBC
‹#›
Йдемо у код...
‹#›
Висновки
Використання SpringJDBC значно спрощує роботу
з кодом при взаємодії з БД:
зменшення кількості коду;
більша можливість використання різноманітних
connections, statements;
наявність готового NamedPreparedStatement;
окрім того, можемо використовувати інші функції Spring
фреймоврку
‹#›
Confidential

GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”