Spring и Dao являются типичными приложениями двух основных технологий Spring, IoC и AOP.
- Использование шаблона JDBC — это приложение IoC, которое внедряет объект шаблона JDBC в класс реализации уровня Dao.
- Для управления транзакциями Spring это приложение АОП, и транзакция вплетена в бизнес-метод уровня службы как аспект.
содержание
Шаблоны Spring и JDBC
Чтобы избежать сложного и длинного кода, вызванного прямым использованием JDBC, Spring предоставляет мощный шаблонный класс — JdbcTemplate для упрощения операций JDBC. Кроме того, как объект источника данных DataSource, так и объект шаблона JdbcTemplate могут быть определены в файле конфигурации в форме bean-компонентов, что позволяет в полной мере использовать возможности внедрения зависимостей.
концепция:
Что такое JdbcTemplate?
Платформа Spring инкапсулирует JDBC и использует JdbcTemplate для облегчения операций с базой данных.
Модуль Spring JDBC в основном состоит из 4 пакетов, а именно ядра (основной пакет), dataSource (пакет источника данных), объекта (пакет объекта) и поддержки (пакет поддержки).
Имена пакетов | иллюстрировать |
---|---|
основной | Содержит основные функции JDBC, включая класс JdbcTemplate, класс sinpleJdbcInsert, класс SimpleJdbcCal1 и класс NamedParameterJdbcTemplate. |
источник данных | Вспомогательный класс для доступа к источникам данных, он имеет реализации различных источников данных и может тестировать код JDBC вне контейнера JavaEE. |
объект | Доступ к базе данных объектно-ориентированным способом, который позволяет выполнять запросы и возвращать результаты в виде бизнес-объектов, которые могут отображать результаты запроса между столбцами таблицы данных и свойствами бизнес-объектов. |
поддерживать | Содержит классы поддержки из основных и объектных пакетов, например класс SQLException, обеспечивающий функциональность преобразования исключений. |
Как видно из приведенной выше таблицы, операции Spring над базой данных инкапсулированы в эти пакеты, и если вы хотите использовать Spring JDBC, вам необходимо настроить его.
配置数据源
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring"/>property name="username" value="root"/>
<property name="password" value="root"/>
<bean>
配置JDBC模板
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>注入数据源
</bean>
<bean id="xxx" class="Xxx">配置需要实例化的Bean
<properame="jdbcTemplate" ref="jdbcTemplate"/>注入JDBC模板
</bean>
Описание 4 свойств в приведенном выше примере конфигурации источника данных показано в следующей таблице:
Имя свойства | значение |
---|---|
имя класса драйвера | Используемое имя драйвера соответствует классу Driver в JAR-пакете драйвера. |
URL | Адрес источника данных. |
имя пользователя | Имя пользователя для доступа к базе данных. |
пароль | пароль для доступа к базе данных |
Описание метода
В базовом классе JdbcTemplate предусмотрено большое количество методов для обновления и запросов к базе данных, и мы используем эти методы для работы с базой данных.
метод | иллюстрировать |
выполнять() | Метод execute(String sql) может использоваться для выполнения операторов sql. |
Обновить() | update() используется для выполнения операций вставки, обновления и удаления. |
запрос() | update() используется для выполнения операций запроса данных |
✨✨✨Я разделительная линия✨✨✨
боевая операция jdbc
1. Создайте пакет
2. Создайте applicationContext.xml в src
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- 1配置数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--数据库驱动 -->
<property name="driverClassName"
value="com.mysql.cj.jdbc.Driver" />
<!--连接数据库的url -->
<property name="url"
value="jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&useSSL=false" />
<!--连接数据库的用户名 -->
<property name="username" value="root" />
<!--连接数据库的密码 -->
<property name="password" value="123456" />
</bean>
<!-- 2配置JDBC模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 默认必须使用数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
3. Поместите пакет jar в каталог lib.
Ведро семейства пакетов SSM-jar: https://tuomasi.lanzouy.com/b02uszjch
Пароль: банки
4. Создать класс
package com.Example.jdbc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateTest {
/**
* 使用execute()方法建表
*/
public static void main(String[] args) {
// 加载配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取JdbcTemplate实例
JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
// 使用execute()方法执行SQL语句,创建用户账户管理表account
jdTemplate.execute("create table account(" + "id int primary key auto_increment," + "username varchar(50),"
+ "balance double)");
System.out.println("账户表account创建成功!");
}
}
5. Создайте базу данных
create database spring;
mysql> create database spring;
Query OK, 1 row affected (0.02 sec)
mysql> use spring;
Database changed
mysql> show tables;
Empty set (0.02 sec)
6. Запустите программу
7. Просмотр базы данных
mysql> use spring;
Database changed
mysql> show tables;
+------------------+
| Tables_in_spring |
+------------------+
| account |
+------------------+
1 row in set (0.00 sec)
mysql> desc account;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| username | varchar(50) | YES | | NULL | |
| balance | double | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Примечание. Таблица данных учетной записи успешно создана.