3、Spring JDBC模板的使用
目录
3.1 Spring JDBC模板介绍
Spring框架是Java SE/EE开发的一站式框架,有EE开发的每层解决方案;Spring对持久层提供了解决方案:ORM模块和JDBC模块。
3.2 Spring JDBC模板的入门
3.2.1 引入Spring 的JDBC模板的Jar包
3.2.2 创建数据库和表
3.2.3 使用JDBC的模板保存数据
3.3 将连接池和模板交给Spring管理
3.3.1 引入Spring的配置文件
测试
3.3.2 使用开源的数据库连接池
3.3.2.1 DBCP的使用
引入DBCP的jar包
配置DBCP连接池
3.3.2.2 C3P0的使用
引入C3P0的jar包
配置C3P0连接池
3.3.3 在Spring的配置文件中引入属性文件
使用两种方法(Bean方法、Context方法)将属性文件引入到Spring配置中
然后在连接池中使用属性文件中的key值(格式: ${key})-----用法都一样
3.4 使用JDBC模板完成CRUD操作
保存操作
修改操作
删除操作
查询操作
查询某个属性
查询返回对象或集合
数据封装
3.5 Spring的事务管理
3.5.1 Spring的事务管理的API
PlatformTransactionManager:平台事务管理器
- 平台事务管理器:接口,是Spring用于管理事务的真正的对象。
- DataSourceTransactionManager :底层使用JDBC管理事务
- HibernateTransactionManager :底层使用Hibernate管理事务
TransactionDefinition :事务定义信息
- 事务定义:用于定义事务的相关的信息,隔离级别、超时信息、传播行为、是否只读
TransactionStatus:事务的状态
- 事务状态:用于记录在事务管理过程中,事务的状态的对象。
事务管理的API的关系:
Spring进行事务管理的时候,首先平台事务管理器根据事务定义信息进行事务的管理,在事务管理过程中,产生各种状态,将这些状态的信息记录到事务状态的对象中。
3.5.2 Spring的事务的传播行为
Spring的传播行为
- Spring中提供了七种事务的传播行为:
保证多个操作在同一个事务中
- PROPAGATION_REQUIRED
:默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来
- PROPAGATION_SUPPORTS
:支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。
- PROPAGATION_MANDATORY
:如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。
保证多个操作不在同一个事务中
- PROPAGATION_REQUIRES_NEW
:如果A中有事务,将A的事务挂起(暂停),创建新事务,只包含自身操作。如果A中没有事务,创建一个新事务,包含自身操作。
- PROPAGATION_NOT_SUPPORTED
:如果A中有事务,将A的事务挂起。不使用事务管理。
- PROPAGATION_NEVER
:如果A中有事务,报异常。
嵌套式事务
- PROPAGATION_NESTED
:嵌套事务,如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点,执行B中的操作,如果没有异常,执行通过,如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点。
3.5.3 Spring事务管理入门(转账业务)
搭建Spring的事务管理的环境
创建Service的接口和实现类
创建DAO的接口和实现类
配置Service和DAO:交给Spring管理
在DAO中编写扣钱和加钱方法:
配置连接池和JDBC的模板
在DAO注入Jdbc的模板:
3.5.4编程式事务(需要手动编写代码)--了解
第一步:配置平台事务管理器
第二步:Spring提供了事务管理的模板类
- 配置事务的管理的模板类
第三步:在业务层注入事务管理的模板
编写事务管理的代码
3.5.5 声明式事务管理(通过配置实现)---AOP
XML方式的声明式事务管理
- 第一步:引入aop的开发包
- 第二步:恢复转账环境
- 第三步:配置事务管理器
第四步:配置增强
第五步:AOP的配置
注解方式的声明式事务管理
- 第一步:引入aop的开发包
- 第二步:恢复转账环境
- 第三步:配置事务管理器
第四步:开启注解事务
第五步:在业务层添加注解
谢谢阅读 ------知飞翀