项目中关于数据库的连接,一般都采用数据源的方式。反正这次是自己实现,没有其他的要求,就在网上找了一个好点的数据源的实现。看了好几篇文章,都说 Proxool 比较好,就采用它来实现数据源吧。下面来实现:
1,在项目中的 WEB-INF 目录下建立 proxool.xml 文件(在其他目录也行,只要能找到就行),内容为:
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->
<alias>15DayWeb</alias>
<!-- 数据库驱动 -->
<driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>
<!-- 驱动程序类 -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<!-- 联机数据库的用户和密码 -->
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->
<minimum-connection-count>2</minimum-connection-count>
<!-- 最大连接数量,如果超过最大连接数量则会抛出异常
连接数设置过多,服务器CPU和内存性能消耗很大 -->
<maximum-connection-count>20</maximum-connection-count>
<!-- 某一时间点的最大连接数 -->
<simultaneous-build-throttle>10</simultaneous-build-throttle>
<!-- 一次性产生连接的数量 -->
<prototype-count>2</prototype-count>
<!-- 连接最大时间活动 默认5分钟 单位:秒 -->
<maximum-active-time>120</maximum-active-time>
<!-- 连接最大生命时间 默认4小时 单位:秒 -->
<maximum-connection-lifetime>600</maximum-connection-lifetime>
</proxool>
2,在项目中 web.xml 中添加所配置的数据源,在 web-app 下添加如下内容:
<!-- 配置数据源 -->
<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>
</servlet>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况。 -->
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
对于管理监视工具,如果不使用可以不进行配置。
3,测试:
// 获取数据库连接
public void getConnection() throws Exception {
if (conn == null) {
//proxool驱动类
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
// 此处的DBPool是在proxool.xml中配置的连接池别名
conn = DriverManager.getConnection("proxool.15DayWeb");
}
}
// 数据库访问,执行查询操作
public ResultSet query(String sql) throws Exception {
// 初始化数据库连接
getConnection();
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 构造 sql 语句
sql = "select * from about_team_table";
return stmt.executeQuery(sql);
}
// 测试是否可以正常读取表 about_team_table 的数据
public static void main(String[] args) throws Exception {
DbDao dd = new DbDao();
ResultSet rs = dd.query("");
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
System.out.println(rs.getBinaryStream("photo"));
}
}
可以正常使用,测试中不主动关闭连接,在监视工具中当超过活动连接时间自动销毁,不过在使用中还是要释放连接的,连接的最大数毕竟是有限的。
tomcat 版本:apache-tomcat-6.0.18
JDK 版本:jdk-6u11-windows-i586-p
NetBeans版本:netbeans-6.5-ml-windows
proxool 版本:proxool-0.9.1
第一次使用数据源,还没有体会到数据源的好处。不会那些压力测试之类的。
继续学习……
分享到:
相关推荐
标题中的“hibernate3+ proxool-0.9.1配置”涉及到的是在Java开发中,使用Hibernate3 ORM框架与Proxool连接池的整合配置。Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool...
标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...
Spring框架中的DataSource配置使得Proxool的集成变得简单,而proxool-0.9.1.jar和proxool-cglib.jar是运行Proxool所需的核心库。在实际应用中,正确理解和配置这些参数以及库文件,可以优化数据库访问性能,提高系统...
"Proxool-0.9.1-source"是Proxool的一个特定版本的源代码包,主要用于数据库连接池管理。Proxool是一个开源的、基于Java的数据库连接池实现,它提供了一种灵活且可扩展的方式来管理和优化数据库连接。在这个0.9.1...
根据压缩包子文件的文件名称列表,只有一个条目"proxool-0.9.1",这可能是目录名或者另一个压缩文件,通常包含Proxool的配置文件、文档、示例代码或其他相关资源。在实际使用中,用户可能需要查看这些资源以了解如何...
`proxool-0.9.1.tar.gz` 是一个针对Java平台的开源数据库连接池实现,名为Proxool。在IT行业中,数据库连接池是一种重要的资源管理工具,它有效地管理和复用数据库连接,以提高应用性能,降低系统资源消耗。Proxool...
标题中的"proxool-0.9.1.jar"和"proxool-cglib.jar"是两个重要的Java档案文件,它们是Proxool项目的组件。Proxool是一个开源的数据库连接池解决方案,它允许开发者在Java应用程序中高效地管理数据库连接。数据库连接...
这里我们关注的是"proxool-0.9.1.jar"和"commons-logging.jar"这两个组件。 首先,`proxool-0.9.1.jar`是Proxool数据库连接池的实现库,它是一个开源的、轻量级的Java连接池解决方案。Proxool允许开发者在应用中...
`proxool-0.9.1.jar`是Proxool的核心库,包含了所有用于创建和管理数据库连接池的类和接口。`proxool-cglib.jar`则可能包含了CGLIB(Code Generation Library)库,这是一个强大的Java字节码操作框架,Proxool可能用...
标题中的"proxool-0.9.1.jar"是一个Java归档文件,通常包含Java类和...正确配置和使用Proxool和CGLib可以帮助优化数据库操作,提高应用的稳定性和响应速度。同时,了解如何管理和组织项目依赖也有助于提高开发效率。
这个文件可能包含了版本信息、安装步骤、配置指南以及可能的使用示例,帮助用户理解和使用Proxool。 综上所述,这个压缩包“proxool-0.9.1.rar”包含了Proxool数据库连接池的一个特定版本,以及与之相关的JAR文件和...
在“proxool-0.9.1”这个版本中,可能包含了Proxool的JAR文件,这是运行Proxool所需的核心库,以及相关的文档、示例代码和配置文件等。开发者通常需要将这个JAR文件添加到项目的类路径中,以便在代码中使用Proxool。...
描述中提到的"proxool-0.9.1.jar,proxool-cglib.jar,proxool-0.8.3.jar"是Proxool的不同版本和一个依赖库。`proxool-0.9.1.jar`是Proxool的主要库,可能包含了0.9.1版本的API和实现;`proxool-cglib.jar`是CGLIB...
"proxool-0.9.1-source.tar.gz" 是一个包含 Proxool 源代码的压缩文件,版本为 0.9.1。Proxool 是一个开源的 Java 连接池库,它提供了数据库连接池管理服务,用于提高应用在处理大量并发数据库请求时的性能和效率。...
标题中的"proxool-0.9.1-修正版 houseKeepingSleepTime 不能赋值"涉及到的是Proxool的一个特定配置参数及其修复的问题。 Proxool是一个Java数据库连接池实现,它提供了一种灵活、高效的方式来管理数据库连接,以...
Proxool提供的测试代码可以帮助我们了解其内部工作机制,也可以作为示例来学习如何正确使用和配置Proxool。 7. **与其他连接池的对比** Proxool虽然已被其他更成熟的连接池(如HikariCP、C3P0、DBCP)取代,但其...
标题 "proxool-0.9.1" 指向的是 Proxool 的一个特定版本,即 0.9.1 版本。Proxool 是一个开源的 Java 数据库连接池实现,它提供了一种高效且灵活的方式来管理数据库连接。在 Java 应用程序中,数据库连接池是优化...