大数据WEB阶段Spring框架(三)声明式事务处理
分类:
文章
•
2024-11-12 18:30:40
Spring整合JDBC—声明式的事务处理
一、Spring整合JDBC步骤
- 导入jar包

- 编写数据库配置文件


- 也可以将数据库配置信息单独配置后引入Spring容器中

- 代码中使用

二、Spring框架中的JDBC模板类
- 在Spring框架中可以配置JDBC模板类来避免数据库操作时的代码冗余

- 在执行查询操作时 , 需要手动创建用来封装结果集对象的类

- 补充说明: 通过类的反射机制实现结果封装 , 开发效率高 , 但是执行效率低 , 手动封装结果集开发效率低 , 但是执行效率高
- 代码中使用
- 通过模板查询单个对象
- 使用JDBC模板操作数据库时 , 除了查询是query , 其他操作都是update
- 插入数据
- 删除数据
- 修改数据
三、声明式事务处理
- 添加约束和导入约束文件
- 添加约束
- 导入约束文件(如果电脑联网的话 , 添加约束后会自耦东下载 , 不需要导入约束文件)
- 在Application.xml配置文件中配置事务 , 如果id为transactionManager的话可以省略
- 配置事务切面类的通知
- 事务的传播策略:当出现事务嵌套问的时候 需要通过传播策略决定如果控制事务 。 基本上使用默认的Propagation.REQUIRED足以应对所有场景,REQUIRED指如果原来调用的地方有事务,则此方法支持事务,如果原来没有事务,则会创建一个事务
- 把事务配置在切面中
- 这种方式一般不常用 , 一般使用注解形式
声明式事务处理: 注解形式
- 配置文件中配置事务管理类
- 注解的使用(在需要的方法上加上事务的注解
)
四、声明式事务回滚策略
- 事务回滚策略
- Spring声明式事务默认发生运行时异常时回滚 , 发生编译时异常时不回滚 。
- 手动改变事务回滚策略
- 指定发生某个编译时异常时也回滚 , 运行时异常依然回滚
- 指定某个运行时异常发生异常时不会滚
五; 多表操作时的具体问题
- 一定要把事务添加在service层才能解决多表操作的事务问题 。