- Весняний шаблон JDBC
- Розуміння необхідності шаблону Spring JDBC
- Перевага шаблону Spring JDBC
- Класи шаблонів JDBC
- Приклад класу JdbcTemplate
Весна JdbcTemplate це потужний механізм для підключення до бази даних і виконання запитів SQL. Він внутрішньо використовує JDBC API, але усуває багато проблем JDBC API.
Проблеми JDBC API
Проблеми JDBC API такі:
- Нам потрібно написати багато коду до і після виконання запиту, наприклад створити з’єднання, оператор, закрити набір результатів, з’єднання тощо.
- Нам потрібно виконати код обробки винятків у логіці бази даних.
- Нам потрібно обробити транзакцію.
- Повторення всіх цих кодів від однієї логіки бази даних до іншої є трудомістким завданням.
Перевага Spring JdbcTemplate
Spring JdbcTemplate усуває всі вищезгадані проблеми JDBC API. Він надає вам методи безпосереднього написання запитів, що економить багато роботи та часу.
Весна Jdbc наближається
Spring framework надає такі підходи для доступу до бази даних JDBC:
- JdbcTemplate
- NamedParameterJdbcTemplate
- SimpleJdbcTemplate
- SimpleJdbcInsert і SimpleJdbcCall
Клас JdbcTemplate
Це центральний клас у класах підтримки Spring JDBC. Він піклується про створення та звільнення ресурсів, таких як створення та закриття об’єкта з’єднання тощо. Тому це не призведе до жодних проблем, якщо ви забудете закрити з’єднання.
Він обробляє винятки та надає інформативні повідомлення про винятки за допомогою класів винятків, визначених у org.springframework.dao пакет.
що таке спікер
Ми можемо виконувати всі операції з базою даних за допомогою класу JdbcTemplate, такі як вставка, оновлення, видалення та отримання даних із бази даних.
Давайте подивимося на методи Spring класу JdbcTemplate.
Немає. | метод | опис |
---|---|---|
1) | public int update (рядковий запит) | використовується для вставки, оновлення та видалення записів. |
2) | public int update(String query,Object... args) | використовується для вставки, оновлення та видалення записів за допомогою PreparedStatement із заданими аргументами. |
3) | public void execute (рядковий запит) | використовується для виконання запиту DDL. |
4) | public T execute(String sql, PreparedStatementCallback action) | виконує запит за допомогою зворотного виклику PreparedStatement. |
5) | загальнодоступний T-запит (String sql, ResultSetExtractor rse) | використовується для отримання записів за допомогою ResultSetExtractor. |
6) | запит загальнодоступного списку (String sql, RowMapper rse) | використовується для отримання записів за допомогою RowMapper. |
Приклад Spring JdbcTemplate
Ми припускаємо, що ви створили наступну таблицю в базі даних Oracle10g.
create table employee( id number(10), name varchar2(100), salary number(10) );Employee.java
Цей клас містить 3 властивості з конструкторами, сетер і геттери.
package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters }EmployeeDao.java
Він містить одну властивість jdbcTemplate і три методи saveEmployee(), updateEmployee і deleteEmployee().
package com.javatpoint; import org.springframework.jdbc.core.JdbcTemplate; public class EmployeeDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int saveEmployee(Employee e){ String query='insert into employee values( ''+e.getId()+'',''+e.getName()+'',''+e.getSalary()+'')'; return jdbcTemplate.update(query); } public int updateEmployee(Employee e){ String query='update employee set name=''+e.getName()+'',salary=''+e.getSalary()+'' where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } public int deleteEmployee(Employee e){ String query='delete from employee where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } }applicationContext.xml
The DriverManagerDataSource використовується для розміщення інформації про базу даних, такої як ім’я класу драйвера, URL-адреса підключення, ім’я користувача та пароль.
Є властивість під назвою джерело даних у класі JdbcTemplate типу DriverManagerDataSource. Отже, нам потрібно надати посилання на об’єкт DriverManagerDataSource у класі JdbcTemplate для властивості джерела даних.
vlc для завантаження youtube
Тут ми використовуємо об’єкт JdbcTemplate у класі EmployeeDao, тому ми передаємо його за допомогою методу налаштування, але ви також можете використовувати конструктор.
Test.java
Цей клас отримує bean-компонент із файлу applicationContext.xml і викликає метод saveEmployee(). Ви також можете викликати метод updateEmployee() і deleteEmployee(), розкоментувавши код.
package com.javatpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext('applicationContext.xml'); EmployeeDao dao=(EmployeeDao)ctx.getBean('edao'); int status=dao.saveEmployee(new Employee(102,'Amit',35000)); System.out.println(status); /*int status=dao.updateEmployee(new Employee(102,'Sonoo',15000)); System.out.println(status); */ /*Employee e=new Employee(); e.setId(102); int status=dao.deleteEmployee(e); System.out.println(status);*/ } }завантажити цей приклад (розроблений за допомогою MyEclipse IDE)
завантажити цей приклад (розроблений за допомогою Eclipse IDE)