第2章 JDBC进阶-【千锋教育】Java Web开发实战
2023-03-21
|
41页
|
156人阅读
|
0人下载
教辅
内容正文:
第2章 JDBC进阶
数据库事务
数据库连接池
C3P0数据库连接池
DBCP数据库连接池
数据库事务
数据库连接池
☞点击查看本小节知识架构
C3P0数据库连接池
☞点击查看本小节知识架构
☞点击查看本小节知识架构
2.2
2.3
2.1
DBCP数据库连接池
☞点击查看本小节知识架构
2.4
理解
掌握
掌握
理解
理解数据库的事务及其属性
1
掌握两种开源数据库连接池的使用
4
2
掌握JDBC事务处理
3
理解数据库连接池的概念及原理
学习目标
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
2.1 数据库事务
2.1.1
事务的概念
返回目录
2.1.2
事务的ACID属性
2.1.3
数据库的隔离级别
2.1.4
JDBC事务处理
2.1 数据库事务
2.1.1 事务的概念
事务,是指数据库中的一个操作序列,它由一条或多条SQL命令所组成,这些SQL命令不可分割,只有当事务中的所有SQL命令被成功执行后,整个事务引发的操作才会被更新到数据库,如果有一条执行失败,所有操作都将会被取消。
下面通过一个生活实例来讲解数据库的事务。现在很多商店提供扫码支付功能,假如李磊购物之后需向商家支付500元,其购物行为触发的SQL语句如下。
这两条SQL命令属于同一个操作序列,只有全部被成功执行时,整个事务才会被更新到数据库,否则,全部SQL命令都要被取消。这就避免了李磊账户少500元而商家账户金额不变的情况。
各大数据库厂商均提供了对事务的支持,接下来以MySQL为例讲解数据库中事务的管理。
2.1 数据库事务
2.1.1 事务的概念
MySQL数据库共有两种方式来管理事务。
1. 自动提交事务
在默认状态下,MySQL自动提交事务,即每执行一条SQL语句就提交一次事务。这可以通过MySQL的全局变量autocommit进行查看,SQL语句如下。
通过SQL语句查看当前数据库的事务状态,执行结果如下。
从以上执行结果可以看出,全局变量autocommit的值为ON,这时,数据库事务是默认提交的。
2.1 数据库事务
2.1.1 事务的概念
关闭数据库自动提交事务的功能,SQL语句如下。
以上SQL语句的执行结果如下。
再次通过SQL语句查看当前数据库的事务状态,执行结果如下。
从以上执行结果可以看出,全局变量autocommit的值为OFF,这时,数据库事务是需要手动提交的。
2.1 数据库事务
2.1.1 事务的概念
2. 手动提交事务
手动进行事务管理时,首先要开启事务(Start Transaction),再提交(Commit)或回滚(Rollback)事务。提交事务会将整个事务中的操作更新到数据库,回滚事务则会取消整个事务中已执行的所有操作。当手动提交事务时,上文实例中购物支付触发的SQL语句如下所示。
在实际开发过程中,事务是并发控制的基本单位,将一组操作序列组合为一个要么全部成功要么全部失败的单元,可以简化错误,恢复并使应用程序更加可靠。
2.1 数据库事务
2.1.2 事务的ACID属性
ACID,是数据库事务正确执行的四个基本要素的缩写,它包含原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务的数据库,必需要具有这四种特性,否则在事务管理中无法保证数据的正确性。
1. 原子性
整个事务中的所有操作是不可分割的,要么完全执行,要么完全不执行,不能停滞在中间某个环节。事务的操作序列如果全部成功,就必须完全应用到数据库;如果有一项操作失败,就不能对数据库有任何影响。
2. 一致性
事务完成时,数据必须是一致的,即与事务开始之前,数据存储中的数据处于一致状态,保证数据的无损。
2.1 数据库事务
2.1.2 事务的ACID属性
与转账为例,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还是5000,这就是事务的一致性。
3. 隔离性
隔离性是指事务与事务之间互相独立,彼此隔离。当多个用户并发访问数据库时,如操作同一张表,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰。对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
关于事务的隔离性,数据库提供了多种隔离级别,稍后会介绍。
2.1 数据库事务
2.1.2 事务的ACID属性
4. 持久性
持久性是指事务一旦提交,那么对数据库中的数据的改变就是永久性的,即使是数据库系统遇到故障也不会丢失事务处理的效果。如:银行转帐的过程中,转帐后帐户的数据要能被
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。