本篇会实现一个数据库连接池,目的是让大家对数据库连接池的实现方式有一个深入的认识。
为什么要使用连接池?
使用数据库连接池可以节省系统的许多的开销,频繁的操作数据库是一个很耗费资源的行为,网站的响应的速度也会下降,严重的时候可能导致服务器崩溃,因此使用数据库连接池势在必行。数据库连接池的原理
建立数据库的链接是一个很费时的操作,数据库连接池的核心就是链接复用。减少链接的建立。数据库连接池的基本思想就是建立一个缓冲池。预先在数据库缓冲池中取出一个,使用完毕之后再放回去即可。数据库连接池的实现分析
- 并发问题
为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题,这个问题相对比较好解决,java支持并发管理支持,使用synachronized关键字保证线程同步;对于大型的企业级应用链接的不同的数据库。
如何实现链接不同的数据库,采用的策略是单例模式的连接池管理类,在连接池管理类的唯一实例被创建的时候读取一个配置文件,配置文件中放置的多个数据库链接信息,根据配置文件提供的信息创建多个连接池的实例,每个实例都是一个特例数据库的连接池。连接池管理类为每个连接池实例取一个名字,通过不同的名字来管理不同的连接池。
- 并发问题
事务管理
通过设置Connection的AutoCommit属性为false,然后调用commit或rollback方式来实现,但是要高效进行Connection复用,就必须提供相应的事务支持机制。可采用每一个事务独占一个链接实现,这种方法大大降低事务管理机制。数据库链接池的实现代码
这里写代码片