博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库事务控制解说与为何要引入连接池
阅读量:4325 次
发布时间:2019-06-06

本文共 929 字,大约阅读时间需要 3 分钟。

1.什么是数据库事务控制?

   答:数据库事务控制说白了就是将一系列操作当成一个不可分割的逻辑单元,对数据库操作,保证这些操作要么都是同时成功,要么都同时失败,并不存在其中的一个失败或者成功的案例,在关系数据库中,一个事务可以是一条SQL语句或者是一组SQL语句又或者是整个程序。

        事务是恢复和并发控制的基本单位;

        事务所具备的4个属性:原子性、一致性、隔离性、持续性,这4个属性通常被称为ACID特性;

        原子性:一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么一起成功,要么一起失败;

        一致性:事务必须是使数据库从一个一致性状态变到另一个一致性状态,一致性与原子性是密切相关的;

        隔离性:一个事务的执行不会被其他事务所干扰,即一个事务内的操作以及使用的数据对开发者的其他事物是隔离的,并发执行的各个事务之间不能互相干扰;

        持续性:持续性也称永久性,是指一个事务一旦提交,它对数据库中的数据所作出的修改与变化应该是永久性的,接下来的其他操作及故障并不会对其有任何的影响;

         事务有两种操作情况:即提交事务与回滚事务。

2.为什么要引入连接池问题?

   答:在web项目开发中,应用页面操作需连接数据库处理数据以及响应页面数据,在这一过程中,后台代码需要使用连接JDBC连接数据库,而每次的连接访问都必须先建立连接---打开数据库---存取数据---关闭连接等,这一系列操作访问步骤,但是我们知道数据库的连接不仅费时而且消耗系统资源,如果应用页面操作次数比较少还好,但是假如多个用户操作频繁进行连接数据库的话,那么系统就是受到很大的影响了,这时候我们引入连接池就可以解决频繁过度连接数据库的情况了,另一情况:也可能会造成数据库连接泄漏,这是指的是程序中没有关闭数据库资源导致,比如程序中没有关闭Connection,Statement,ResultSet资源,而这些资源没有释放得不到重新使用,因此造成连接泄漏,如果频繁的泄漏则会导致资源耗尽,从而影响系统的正常运行,为了解决这些问题也就引入的连接池技术,用来负责分配和管理以及释放数据库连接的技术。

 

转载于:https://www.cnblogs.com/Generalwake/p/6410250.html

你可能感兴趣的文章
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_3 spring基于XML的IOC环境搭建和入门
查看>>
阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入
查看>>
阶段3 2.Spring_04.Spring的常用注解_7 改变作用范围以及和生命周期相关的注解
查看>>
阶段3 2.Spring_05.基于XML的IOC的案例1_3 测试基于XML的IOC案例
查看>>
阶段3 2.Spring_04.Spring的常用注解_4 由Component衍生的注解
查看>>
阶段3 2.Spring_06.Spring的新注解_2 spring的新注解-Bean
查看>>
阶段3 2.Spring_04.Spring的常用注解_6 用于注入数据的注解
查看>>
阶段3 2.Spring_06.Spring的新注解_3 AnnotationConfigApplicationContext的使用
查看>>
阶段3 2.Spring_07.银行转账案例_2 案例中添加转账方法并演示事务问题
查看>>
阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
查看>>
阶段3 2.Spring_07.银行转账案例_7 代理的分析
查看>>
阶段3 2.Spring_07.银行转账案例_3 分析事务的问题并编写ConnectionUtils
查看>>
阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理
查看>>