import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.logging.Logger;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
public class RowSetFactory
{
private static Logger logger=Logger.getLogger(RowSetFactory.class.getName());
static
{
try
{
//1)非连接池情况下,用这个
//Class.forName("com.mysql.jdbc.Driver");
//2)proxool连接池
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
}catch(Exception e)
{
logger.severe(e.getLocalizedMessage());
}
}
public static CachedRowSetImpl getRowSet()
{
try
{
//1)非连接池情况下,用这个
//connection不能够释放
CachedRowSetImpl rowSet=new CachedRowSetImpl();
rowSet.setUrl("jdbc:mysql://172.18.6.7:3306/wapchannel?useUnicode=true&characterEncoding=gb2312");
rowSet.setUsername("root");
rowSet.setPassword("");
//2)proxool连接池情况下,用这个
//用这个方法,默认的15个connectionCount很快就用完了
//rowSet.setUrl("proxool.test:com.mysql.jdbc.Driver:jdbc:mysql://172.18.6.7:3306/wapchannel?user=root&password=;&useUnicode=true&characterEncoding=gb2312");
rowSet.setCommand("select Fshortening,Ftitle,Fparent where Fen_topic=''");
rowSet.execute();
return rowSet;
}
catch(Exception e)
{
logger.severe("error happen when connect to the database 16.27");
return null;
}
}
/**
* 正确的使用方法
* @param sql
* @return
*/
public static CachedRowSet query(String sql){
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
CachedRowSetImpl rs= new CachedRowSetImpl();
String url = "proxool.test:com.mysql.jdbc.Driver:jdbc:mysql://172.23.2.3:3306/wapchannel?user=root&password=;&useUnicode=true&characterEncoding=gb2312";
Properties info= new Properties();
info.setProperty("proxool.maximum-connection-count", "300");
conn=DriverManager.getConnection(url,info);
stmt = conn.createStatement();
rset = stmt.executeQuery(sql);
rs.populate(rset);
return rs;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
}
try {
conn.close();
} catch (Exception e) {
}
conn = null;
stmt = null;
rset = null;
}
return null;
}
}
分享到:
相关推荐
下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池实现。Proxool通过创建一个数据库连接池来管理数据库连接...
Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
Proxool连接池使用方法 首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面, 另外, 把你的 jdbc driver 也放到相同的 lib,
以下是如何配置SessionFactory以使用Proxool连接池: ```xml <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> <!-- 数据库方言 --> <prop key="hibernate.show_sql">true...
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
Proxool的核心功能是创建一个池化的数据库连接集合,当应用需要连接时,可以从池中获取,使用完毕后归还,而不是每次操作数据库都创建新的连接。这种方式减少了频繁创建和关闭连接的开销,提高了系统资源利用率。...
2. `proxool-0.9.1.jar`:这是Proxool的主要库文件,包含了连接池的核心实现和所有必要的类,开发者在项目中引用这个jar文件就可以使用Proxool的功能。 在实际应用中,使用Proxool连接池的步骤通常包括: 1. 添加...
- **配置细节**:HouseKeeper负责监控连接池中的连接状态,定期检查是否有连接超时或者需要被回收的情况。 - **示例配置**: ```properties house-keeping-sleep-time=90000 ``` ##### 3. **house-keeping-...
标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...
4. **监控和统计(Monitoring and Statistics)**:Proxool提供了丰富的监控和统计信息,包括连接使用情况、等待队列长度、连接寿命等,帮助开发者分析和优化系统的性能。 5. **CGLIB库(proxool-cglib.jar)**:这...
在这个"ssh2简单案例"中,我们将探讨如何结合注解、Proxool连接池和SF4J日志记录来构建一个SSH2注册登录系统。 首先,SSH2在Java中的实现通常通过JSch库来完成。JSch允许开发者在Java程序中执行命令、传输文件以及...
3. **监控和诊断**:提供丰富的监控信息,如连接使用情况、等待队列长度等,便于诊断和优化。 4. **线程安全**:Proxool 使用内部锁机制保证了多线程环境下的安全性。 5. **透明性**:对应用程序来说,使用Proxool ...
Proxool还提供了监控和统计功能,如连接使用情况、最大连接数等,方便开发者对数据库性能进行调优。 C#是一种广泛使用的面向对象的编程语言,通常与.NET框架一起使用。虽然Proxool本身是Java库,但通过使用JNI...
这里,`pool_alias`定义了连接池的别名,`hibernate.proxool.xml`指定了Proxool配置文件的位置,`connection.provider_class`则指明使用Proxool作为连接提供者。 **(3)Proxool配置文件** 创建`ProxoolConf.xml`...
在这里,我们通过`dataSource`属性引用了上面配置的数据源,这样Hibernate就能使用Proxool连接池进行数据库操作。 5. 在`hibernateProperties`中,我们设置了`hibernate.dialect`为`MySQLDialect`,表示使用的是...
在学习Proxool的过程中,提供的文档是十分重要的,它将详细介绍如何配置、使用和诊断Proxool连接池,以确保你在实际项目中能够充分利用其优势,优化数据库访问效率。通过阅读文档,你可以了解更深入的细节,例如连接...
初次访问可能仅显示“Pools”字样,但执行`http://localhost:8080/proxool-test/test.jsp`后,即可动态展示连接池的工作情况。 #### 步骤五:使用Properties或XML配置数据库参数 除了硬编码配置,还可使用XML或...
2. **性能统计**: 可以记录每个连接的使用情况,包括创建时间、使用时长等,为性能调优提供数据支持。 3. **连接池限制**: 可以设置连接池的最大和最小连接数,防止资源过度消耗。 4. **透明化**: Proxool对应用...