首页 > 开发 > 综合 > 正文

初识数据库连接池

2024-07-21 02:51:19
字体:
来源:转载
供稿:网友

前言:(尚在学习中,各种摘抄,后续有补充)

基础知识

定义:

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销。

原理

连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

开源的数据库连接池种类 :

1、C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate[2] 一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 2、PRoxool、Jakarta DBCP等(这里因为时间关系不详细介绍)

C3P0在实际项目中怎么用

C3P0官网:http://sourceforge.net/projects/c3p0/

所需jar包

c3p0-0.8.4.5.jar

配置代码

<c3p0-config> <named-config name="ezzu"> <property name="driverClass">com.MySQL.jdbc.Driver</property> <property name="user">user1</property> <property name="passWord">pw_user1</property> <property name="jdbcUrl">jdbc:mysql://localhost/zzu_player?useSSL=false</property> <property name="acquireIncrement">5</property> <property name="initialPoolSize">5</property> <property name="minPoolSize">5</property> <property name="checkoutTimeout">5000</property> <property name="unreturnedConnectionTimeout">2000</property> <property name="maxPoolSize">20</property> <!-- intergalactoApp adopts a different approach to configuring statement caching --> </named-config></c3p0-config>

如何在Tomcat中配置数据源和连接池?

a.通过修改%Tomcat_home%/conf/server.xml文件,在指定的位置添加如下代码:

<Resource name="xushouwei" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="xushouwei"> <!--工厂设置--> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <!--驱动设置,该驱动放在tomcat的common/lib下,或者放在该站点自己的lib目录下--> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <!--设置url--> <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=spdb</value> </parameter> <parameter> <!--设置连接数据库的用户名--> <name>username</name> <value>sa</value> </parameter> <parameter> <!--设置连接数据库的密码--> <name>password</name> <value>xushouwei</value> </parameter> <parameter> <!--在连接池中最大的激活连接数--> <name>maxActive</name> <value>200</value> </parameter> <parameter> <!--在连接池中最大的保留空闲连接数--> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <!--客户端在队列池中最大等待时间,按秒计算--> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams>

参考资料

类似官方使用文档一样的东东:http://www.mchange.com/projects/c3p0/index.html 前人的博客:http://www.cnblogs.com/Jasxu/p/tomcat_config.html


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表