第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. 持久性 持久性是指事务一旦提交,那么对数据库中的数据的改变就是永久性的,即使是数据库系统遇到故障也不会丢失事务处理的效果。如:银行转帐的过程中,转帐后帐户的数据要能被

资源预览图

第2章 JDBC进阶-【千锋教育】Java Web开发实战
1
第2章 JDBC进阶-【千锋教育】Java Web开发实战
2
第2章 JDBC进阶-【千锋教育】Java Web开发实战
3
第2章 JDBC进阶-【千锋教育】Java Web开发实战
4
第2章 JDBC进阶-【千锋教育】Java Web开发实战
5
第2章 JDBC进阶-【千锋教育】Java Web开发实战
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。