`
- 浏览:
144583 次
- 性别:
- 来自:
杭州
-
使用proxool数据库连接池步骤:
在WEB-INF的lib中导入proxool-0.9.0RC3.jar
在WEB-INF中新建一个XML文件,取名为proxool.xml
在proxool.xml中的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--
the proxool configuration can be embedded within your own application's. Anything outside the "proxool"
tag is ignored.
-->
<something-else-entirely>
<proxool>
<alias>smms</alias> <!--数据源的别名-->
<driver-url>jdbc:mysql://127.0.0.1:3306/smms</driver-url><!--url连接串-->
<driver-class>com.mysql.jdbc.Driver</driver-class><!--驱动类-->
<driver-properties>
<property name="user" value="root" /><!--用户名-->
<property name="password" value="root" /><!--密码-->
</driver-properties>
<!--最大连接数(默认 5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由
maximum-new-connections决定-->
<maximum-connection-count>100</maximum-connection-count>
<!--最小连接数(默认2个)-->
<minimum-connection-count>10</minimum-connection-count>
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默
认30秒-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-
->
<maximum-new-connections>10</maximum-new-connections>
<!--最少保持的空闲连接数(默认2个)-->
<prototype-count>5</prototype-count>
<!--在使用之前测试-->
<test-before-use>true</test-before-use>
<!--用于保持连接的测试语句 -->
<house-keeping-test-sql>select id from t_sysadmin</house-keeping-test-sql>
</proxool>
</something-else-entirely>
在web.xml中添加以下节点:
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
t;/servlet>
数据库操作类如下:
package cn.edu.hbcit.smms.dao.databasedao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.admin.SnapshotIF;
/**
* 数据库操作类
* @author lw
*
*/
public class DBConn {
private static Connection conn;
private static ResultSet rs;
private static PreparedStatement ps;
private static String driverClass = "org.logicalcobwebs.proxool.ProxoolDriver";//proxool驱动类
//private static String url = "jdbc:mysql://localhost:3306/bbs?user=root&password=123";
private static int activeCount = 0; //活动连接数
protected final Logger log = Logger.getLogger(DBConn.class.getName());
/**
* 获取数据库连接
* @return Connection
*/
public Connection getConn() {
try {
Class.forName(driverClass);
conn = DriverManager.getConnection("proxool.smms"); //此处的smms是在proxool.xml中配置的连接池别名
this.showSnapshotInfo(); //查看连接池信息
} catch (Exception e) {
log.error(e.getMessage());
log.debug("数据库连接错误!");
//System.out.println(e.getMessage());
//System.out.println("数据库连接错误!");
}
return conn;
}
/**
* 释放连接
* freeConnection
* @param conn
*/
public void freeConnection(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 获取连接池中的连接信息
*/
private void showSnapshotInfo(){
try{
SnapshotIF snapshot = ProxoolFacade.getSnapshot("smms", true);
int curActiveCount=snapshot.getActiveConnectionCount();//获得活动连接数
int availableCount=snapshot.getAvailableConnectionCount();//获得可得到的连接数
int maxCount=snapshot.getMaximumConnectionCount() ;//获得总连接数
if(curActiveCount!=activeCount)//当活动连接数变化时输出的信息
{
log.debug("活动连接数:"+curActiveCount+"(active);可得到的连接数:"+availableCount+"(available);总连接数:"+maxCount+"(max)");
//System.out.println("活动连接数:"+curActiveCount+"(active);可得到的连接数:"+availableCount+"(available);总连接数:"+maxCount+"(max)");
activeCount=curActiveCount;
}
}catch(ProxoolException e){
e.printStackTrace();
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
接下来,我们逐一探讨每种数据库的连接池配置步骤: 1. **Oracle连接池配置**: - 登录WebSphere管理控制台(例如:localhost:9090/admin/) - 创建JDBC提供程序,指定类路径为`${ORACLE_JDBC_DRIVER_PATH}/...
-- 新增的数据库连接池配置 --> driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ora" maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select * ...
WebSphere中流行数据库连接池的配置 本文介绍WebSphere下Oracle、SQL Server、Sybase、MySQL数据库连接池的配置方法,并给出相应调用连接池的示例。相对于Weblogic,WebSphere连接池的配置要稍微复杂一些,因为缺少...
1. **C3P0连接池配置** C3P0是开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Hibernate中配置C3P0连接池,需要在`hibernate.cfg.xml`配置文件中添加以下属性: ```xml ...
配置C3P0连接池时,开发者通常需要在配置文件(如Hibernate的`hibernate.cfg.xml`或Spring的`applicationContext.xml`)中指定以下参数: - `driver_class`: 数据库驱动类名,例如`com.mysql.jdbc.Driver`。 - `...
连接池是一种数据库连接管理机制,它维护了一个包含预创建数据库连接的池。当应用程序需要连接时,可以从池中获取一个已经存在的连接,用完后不是关闭而是归还给池,以便其他线程或请求可以重用。这大大降低了数据库...
四、其他连接池配置 除了Proxool,还有许多优秀的连接池实现,如: 1. C3P0:配置项以`hibernate.c3p0.`开头,如`hibernate.c3p0.min_size`、`hibernate.c3p0.max_size`等。 2. DBCP:Apache的另一个连接池实现,...
- Hibernate 2和Hibernate 3之间的API有差异,这会影响到连接池配置类的引用。比如,配置C3P0连接池时,Hibernate 2环境下使用的是`net.sf.hibernate.connection.C3P0ConnectionProvider`,而到了Hibernate 3,则...
在进行数据库连接池配置时,需要注意以下几点: 1. 确保数据库驱动版本与数据库版本兼容。 2. `maxActive`属性定义了连接池中最大的活跃连接数,要根据应用程序的实际并发需求来设置。 3. `maxIdle`属性定义了连接...
在《Spring下配置几种常用连接池.pdf》文档中,会详细阐述每种连接池的配置细节,包括更多可选参数和最佳实践。通过深入学习和实践,开发者可以更好地理解和运用这些连接池,优化数据库访问性能,提升整体应用的效率...
MongoDB连接池是解决数据库连接管理和复用的一种机制,旨在提高应用的并发能力,减少创建和销毁连接的开销,同时确保在高并发场景下的稳定性和响应速度。 标题“MongoDB连接池for Java”指的是在Java环境中,针对...
### WebSphere中流行数据库连接池的配置详解 #### 一、引言 在现代企业级应用开发中,数据库连接池的合理配置对于提高系统的性能和稳定性至关重要。WebSphere作为IBM的一款高级应用程序服务器,支持多种数据库管理...
Druid是一个功能强大且性能优异的数据源连接池,而PostgreSQL则是一种流行的开源关系型数据库管理系统。本教程将详细介绍如何在Java项目中使用Druid数据连接池连接PostgreSQL数据库,以实现一个简单的测试环境。 ...
WebSphere 中流行数据库连接池的配置(Oracle、SQL Server、Sybase、MySQL) 在 WebSphere 中配置数据库连接池是非常重要的,因为它能够提高应用程序的性能和可靠性。本文将详细介绍如何在 WebSphere 中配置 Oracle...
当切换到C3P0时,首先引入了`PropertyPlaceholderConfigurer`来加载`jdbc.properties`文件,这样可以将敏感信息(如用户名、密码和连接池配置)存储在外部文件中,而不是硬编码在XML配置中。然后,配置了`...
【Tomcat连接池配置详解】 在Java Web开发中,Tomcat作为流行的开源Servlet容器,提供了对数据库连接管理的支持,这就是所谓的连接池。连接池能够有效地管理和复用数据库连接,提高系统的性能和资源利用率。本文将...