数据源的核心原理
在一个对象池中保存多个数据库的连接(也称为数据库连接池,Connection Pool),这样以后再进行数据库操作时,直接从连接池中取出一个数据库连接,当数据库操作完成后,再将此连接放回到数据库连接池中,等待其他用户的使用
存在的问题:
(1)最小连接数
如果一个程序在使用时没有一个用户连接,则数据库最小应该维持的数据库连接数
(2)最大连接数
在一个程序中一个数据库最多可以打开的数据库连接数
(3)最大等待时间
当一个数据库连接池中已经没有更多的数据库连接提供给用户使用时,其他用户等待的最大时间,如果在等待时间内有连接放回,则可以继续使用,;如果超过了最大等待时间,则用户无法取得数据库连接。
上述方法自己实现较为困难,在Tomcat 4.1.x版本之后已经支持了此操作,所有,在web开发中可以直接通过Tomact即可实现数据库连接池的功能。
数据库连接池组件可以从网上搜索各种数据库连接池的组件进行程序功能的实现,如Apache组织的C3P0组件。
在Tomact中使用数据库连接池
在Web容器中,数据库的连接池都是通过数据源(javax.sql.DataSource)访问的,既可以通过Javax.sql.DataSource类获取一个Connection对象,但是想要得到一个DataSource对象需要使用JNDI进行查找