Spring-JDBC
#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>>
Spring的JDBC模板
JDBC模板
什么是JDBC模板
创建项目
测试
IOP-DI改写
CRUD操作
事务操作
Spring的事务管理的API
各API之间的联系
事务的传播行为
事务使用
SpringJDBC模板是什么?
Spring是EE开发的一站式的框架,有EE开发的每层的解决方案。
Spring对持久层也提供了解决方案:ORM模块和JDBC的模板。
Spring提供了很多的模板用于简化开发,有基础的JDBC模板相当于DBUtils,使用Hibernate也有简化使用Hibernate的模板
创建项目
Spring基础包

JDBC模板包及数据库驱动包

创建数据库和表

测试类使用模板

成功插入

上面测试代码中有两处创建对象

将他们交给Spring来创建

使用注解

还可以将数据库信息使用属性配置文件
jdbc.properties

加载属性配置文件,再使用el表达式引用

插入

删除

修改

查询单字段

单行记录(封装对象)

多条(封装集合)

Spring的事务管理的API
1.PlatformTransactionManage
平台事务管理器 是一个接口,下面有两个实现类
DataSourceTransactionManager
底层使用JDBC管理事务
HibernateTransactionManager
底层使用Hibernate管理事务
2.TransactionDefinition
事务定义信息:用于定义事务的相关的信息,隔离级别、超时信息、传播行为、是否只读
3.TransactionStatus
事务状态:用于记录在事务管理过程中,事务的状态的对象。
各API之间的联系
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中的操作,如果没有异常,执行通过,如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点 |
使用事务
编程式事务
配置事务管理和事务管理模板

使用

xml配置事务(aop给方法增强事务)
配置事务通知,再配置aop给transferMoney方法添加通知


注解方式
annotation-driven开启注解方式,传入事务平台管理器,在业务类上开启注解


无论哪一种首先将事务管理器交给Spring
本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

浙公网安备 33010602011771号