基本概念及原理
数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。
为什么要使用连接池
1.重用连接,节省连接资源。
2.免去建立连接操作,提高效率。
3.当在系统中调用conn.close()方法时,只是关掉用户与连接池的连接
在spring中通过proxool配置连接池
<!--
proxool存在这个bug,在Spring的"applicationContext.xml"中定义dataSource时
必须把用户名和密码写在连接串里面,ProxoolDataSource类提供的user,password属性没有用
无论提供什么,它都会以空用户名、密码去连接数据库
不过配置中的user,password两个属性还必须设置,否则会报空指针错误。
-->
<bean id="sqlserverDS" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver">
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property>
<property name="driverUrl">
<value>jdbc:sqlserver://localhost:1433;DatabaseName=demo;user=sa;password=sa</value>
</property>
<property name="user">
<value>sa</value>
</property>
<property name="password">
<value>sa</value>
</property>
<property name="alias">
<value>sqlserverPool1</value>
</property>
<property name="houseKeepingTestSql">
<value>select CURRENT_DATE</value>
</property>
<property name="maximumActiveTime">
<value>3600</value>
</property>
<property name="maximumConnectionCount">
<value>100</value>
</property>
<property name="minimumConnectionCount">
<value>15</value>
</property>
<property name="prototypeCount">
<value>10</value>
</property>
<property name="trace">
<value>true</value>
</property>
<property name="verbose">
<value>true</value>
</property>
<property name="statistics">
<value>1m,15m,1d</value>
</property>
</bean>