Spring 框架jdbcTemplate和事务部分的知识

Posted scanner小霸王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 框架jdbcTemplate和事务部分的知识相关的知识,希望对你有一定的参考价值。

1.jdbcTemplate的概念

a)spring框架对jdbc进行封装,能方便实现对数据库操作

2.jdbcTemplate准备工作

a)引入相关jar包
b)spring配置文件配置数据库连接池
在这里插入图片描述
c)创建JdbcTemplate对象,注入DataSource
在这里插入图片描述
d)创建service,dao类,在dao注入JdbcTemplate对象

开启组件扫描

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3JdbcTemplate进行操作数据库

a)创建实体
在这里插入图片描述

b)编写service和dao
ii)dao书写方式1
在这里插入图片描述
ii)dao书写方式2
在这里插入图片描述
c)编写测试类
在这里插入图片描述

d)补充jdbcTemplate查询对象
在这里插入图片描述
在这里插入图片描述
e)查询集合
在这里插入图片描述
f)批量操作(删除,插入,修改都是调用batchUpdate()方法)
在这里插入图片描述
Dao代码
在这里插入图片描述
测试类代码:
在这里插入图片描述

4.事务(概念)

a) 事务库操作最基本单元,逻辑上一组操作,要么都成功,要么都失败。
例子:银行转账:一方收钱,一方转钱,出现转账异常,收钱也失败。
b) 特性(ACID)
ii)原子性
要么成功要么失败
ii)一致性
操作的总量是一致的,
例如:a转账100元,b收钱100元,金额的操作总理是200元。
ii)隔离性
多事务操作不会互相影响
ii)持久性
当进行数据操作之后,数据库的数据真正发生变化

5.事务操作(搭建环境)

a) 框架图
在这里插入图片描述

b)Dao创建两个方法(转账100元)
在这里插入图片描述
c)service创建需要以下的步骤
事务:
ii)开启事务
ii)进行业务操作
ii)若无异常,提交事务
ii)若有异常,事务回滚

6.事务操作(事务介绍)

a)定义在service
b)事务管理操作(两种方式)
ii)编程式(写代码,嵌入在代码内)
ii)声明式(开发使用一般使用,比较方便)

c)声明式事务管理
ii)基于注解方式
ii)基于xml配置文件方式

d)在spring进行声明式事务管理,底层使用aop

e)spring事务管理api
ii)提供了一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类

7. 事务操作(注解声明式)

a)spring配置事务管理器
在这里插入图片描述

b)在配置文件中,开启事务注解(指定事务管理器)
在这里插入图片描述
c)service添加事务注解(可加到类上面或者方法上面)
在这里插入图片描述
:@transactional可配置相关参数
ii)propagation:事务传播行为
传播行为概念:多事务方法直接进行调用,这个过程时如何进行管理;
事务方法:对数据表数据进行变化的操作(查询不是);
在这里插入图片描述
在这里插入图片描述
例子:
在这里插入图片描述

ii)ioslation:事务的隔离级别
事务有一个特性:隔离性,多事务操作之间不会影响,不考虑隔离性产生问题
三个问题:脏读、不可重复读、虚(幻)读
脏读:一个未提交的事务读到另一个未提交事务的数据;

例子:两个人都要操作同一条数据
在这里插入图片描述
为啥会读到未提交的事务的数据?
回答:
对于InndoDB引擎来说,一个事务中操作首先会写到mysql的缓冲池中,等事务提交后缓冲池的数据会写到重做日志,以此来保证事务的原子性和持久性。而脏读显然是读到了缓冲池里的数据
参考知乎回答:https://www.zhihu.com/question/453739394

不可重复读:一个未提交的事务读取到另外一个已经提交修改的事务(时一种现象,不是问题)(更新)

虚读:一个未提交的事务读取到另外一个已经提交插入的事务(插入)

解决三种现象的方法(隔离级别):
在这里插入图片描述

ii)timeOut:超时时间
事务在一定时间进行提交,秒为单位
ii)readOnly:是否只读
readOnly:默认值false,可增删改查,true只能查询
ii)rollbackFor:回滚
出现哪些异常进行回滚
ii)noRollbackFor:不回滚

出现哪些异常不进行回滚

8.事务操作(XML声明式)

a)事务管理器
在这里插入图片描述

b)配置通知
在这里插入图片描述

c)配置切入点和切面

在这里插入图片描述
d)开启事务的注解

9.事务操作(完全注解)

创建一个配置类代替XML
a)jdbc数据源创建,事务开启,组件扫描
在这里插入图片描述
b)创建jdbcTemplate
在这里插入图片描述
c)创建事务
在这里插入图片描述

以上是关于Spring 框架jdbcTemplate和事务部分的知识的主要内容,如果未能解决你的问题,请参考以下文章

Spring 框架jdbcTemplate和事务部分的知识

Spring jdbcTemplate

11 Spring框架 SpringDAO的JdbcTemplate

Spring框架学习04

Spring 中的JdbcTemplate

Spring 中的JdbcTemplate