数据库事务控制解说与为何要引入连接池
1.什么是数据库事务控制?
答:数据库事务控制说白了就是将一系列操作当成一个不可分割的逻辑单元,对数据库操作,保证这些操作要么都是同时成功,要么都同时失败,并不存在其中的一个失败或者成功的案例,在关系数据库中,一个事务可以是一条SQL语句或者是一组SQL语句又或者是整个程序。
事务是恢复和并发控制的基本单位;
事务所具备的4个属性:原子性、一致性、隔离性、持续性,这4个属性通常被称为ACID特性;
原子性:一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么一起成功,要么一起失败;
一致性:事务必须是使数据库从一个一致性状态变到另一个一致性状态,一致性与原子性是密切相关的;
隔离性:一个事务的执行不会被其他事务所干扰,即一个事务内的操作以及使用的数据对开发者的其他事物是隔离的,并发执行的各个事务之间不能互相干扰;
持续性:持续性也称永久性,是指一个事务一旦提交,它对数据库中的数据所作出的修改与变化应该是永久性的,接下来的其他操作及故障并不会对其有任何的影响;
事务有两种操作情况:即提交事务与回滚事务。
2.为什么要引入连接池问题?
答:在web项目开发中,应用页面操作需连接数据库处理数据以及响应页面数据,在这一过程中,后台代码需要使用连接JDBC连接数据库,而每次的连接访问都必须先建立连接---打开数据库---存取数据---关闭连接等,这一系列操作访问步骤,但是我们知道数据库的连接不仅费时而且消耗系统资源,如果应用页面操作次数比较少还好,但是假如多个用户操作频繁进行连接数据库的话,那么系统就是受到很大的影响了,这时候我们引入连接池就可以解决频繁过度连接数据库的情况了,另一情况:也可能会造成数据库连接泄漏,这是指的是程序中没有关闭数据库资源导致,比如程序中没有关闭Connection,Statement,ResultSet资源,而这些资源没有释放得不到重新使用,因此造成连接泄漏,如果频繁的泄漏则会导致资源耗尽,从而影响系统的正常运行,为了解决这些问题也就引入的连接池技术,用来负责分配和管理以及释放数据库连接的技术。