数据源(DataSource)

数据源(DataSource)
制SUN制定的用于获取数据库连接的规范接口。
它存在于 javax.sql包中,用来代替 DriverManager 的方式
来获取连接。

DataSource 与 DriverManager 获取连接的不同:
a).DriverManager是由SUN实现的,它只供了最基本的获取
   连接的方式。
   而DataSource是一个接口,不光SUN可以实现,很多第三方
   的中间件也可以实现,而且实现得很好。

DataSource一般有如下三种实现方式:
  标准实现 -- 提供最基本的连接,也就是DriverManager的方式
  连接池的实现 -- 提供了连接池,是一种可以缓存及管理多个
    数据库连接的“容器”。
  分布事务的实现 -- 提供了连接池,而且这个池中的连接是
  支持分布式事务的(Distribute Transaction)

一般来说,DataSource 都会由专业的中间件(MiddleWare)来实现。
当然,也有一些开源(免费)的 DataSource的实现。
最有名就是:Apache 组织提供的 commons-dbcp

--

建议,今后都使用 DataSource 来获取连接。

数据源 与 连接池 的关系
数据源(DataSource)是由SUN制定的一个规范(获取数据库连接的规范),

连接池是数据源规范一种比较主流、重要的实现。

使用 commons-dbcp 组件来建立数据源
它依赖于:
   commons-dbcp-1.4.jar
   commons-pool-1.6.jar
两个jar 文件。

核心类:
BasicDataSource 实现了 javax.sql.DataSource 接口。

--

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/ja0218
username=root
password=1234
#最大连接数量:连接池在同一时间能够分配的最大活动连接的数量,,如果设置为非正数则表示不限制,默认值8
maxActive=15
#最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建,默认值0
minIdle=5
#最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制,默认值8
maxIdle=10
#初始化连接数:连接池启动时创建的初始化连接数量,默认值0
initialSize=5
#连接被泄露时是否打印
logAbandoned=true
#是否自动回收超时连接
removeAbandoned=true
#超时时间(以秒数为单位)
removeAbandonedTimeout=180
# 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待,默认值无限
maxWait=3000
#在空闲连接回收器线程运行期间休眠的时间值(以毫秒为单位).
timeBetweenEvictionRunsMillis=10000
#在每次空闲连接回收器线程(如果有)运行时检查的连接数量
numTestsPerEvictionRun=8
#连接在池中保持空闲而不被空闲连接回收器线程
minEvictableIdleTimeMillis=10000
#用来验证从连接池取出的连接
validationQuery=SELECT 1
#指明是否在从池中取出连接前进行检验
testOnBorrow=true
#testOnReturn  false  指明是否在归还到池中前进行检验
testOnReturn=true




猜你喜欢

转载自blog.csdn.net/dragon901/article/details/79901595