proxool数据连接池 java代码

本文介绍了一个基于Proxool的Java数据库连接池实现方案,详细展示了如何通过Proxool配置和管理数据库连接,同时提供了连接池的状态监控方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2009-09-17 22:16

package com.job36.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.admin.SnapshotIF;


public class ConnectionPool{

private static int activeCount = 0;

private static ConnectionPool instance;

public ConnectionPool() {

}

private void init() throws SQLException {

}

/**
* 返回唯一实例.如果是第一次调用此方法,则创建实例
* 
* @return ConnectionPool 唯一实例
*/
public static ConnectionPool getInstance() {
if (instance == null) {
try {
instance = new ConnectionPool();
instance.init();
} catch (java.sql.SQLException sqle) {
System.out.println("getInstance() Exception1:"
+ sqle.toString());
}
}
return instance;
}

/**
* 获取连接 getConnection
* 
* @param name
* @return
*/
public Connection getConnection() throws SQLException {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.DBPool");
showSnapshotInfo();
return conn;
} catch (Exception ex) {
System.out.println("获取连接失败..");
showSnapshotInfo();
ex.printStackTrace();
}
return null;
}

/**
* 此方法可以得到连接池的信息 showSnapshotInfo
*/
private void showSnapshotInfo() {
try {
SnapshotIF snapshot = ProxoolFacade.getSnapshot("DBPool", true);
int curActiveCount = snapshot.getActiveConnectionCount();// 获得活动连接数
int availableCount = snapshot.getAvailableConnectionCount();// 获得可得到的连接数
int maxCount = snapshot.getMaximumConnectionCount();// 获得总连接数
if (curActiveCount != activeCount)// 当活动连接数变化时输出的信息
{
System.out.println("活动连接数:" + curActiveCount
+ "(active)  可得到的连接数:" + availableCount
+ "(available)  总连接数:" + maxCount + "(max)");
activeCount = curActiveCount;
}
} catch (ProxoolException e) {
e.printStackTrace();
}
}

/**
* 获取连接 getConnection
* 
* @param name
* @return
*/
public Connection getConnection(String name) throws SQLException {
return getConnection();
}

/**
* 释放连接 freeConnection
* 
* @param conn
*/
public void free(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 释放连接 freeConnection
* 
* @param name
* @param con
*/
public void freeConnection(String name, Connection con) {
free(con);
}
}

 WEB.xml

<filter>
<filter-name>AdminLoginFilter</filter-name>
<filter-class>
com.job36.filter.AdminLoginFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>AdminLoginFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>propertyFile</param-name>
<param-value>
WEB-INF\classes\proxool.properties
</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>

<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>/job36/pool</url-pattern>
</servlet-mapping>

 proxool.properties文件

jdbc-0.proxool.alias=DBPool
jdbc-0.proxool.driver-url=jdbc:inetdae7:192.168.3.251:1433?database=blog&charset=GBK
jdbc-0.proxool.driver-class=com.inet.tds.TdsDriver
jdbc-0.user=sa
jdbc-0.password=job36web
jdbc-0.proxool.house-keeping-sleep-time=40000
jdbc-0.proxool.house-keeping-test-sql=SELECT ''
jdbc-0.proxool.maximum-connection-count=50
jdbc-0.proxool.minimum-connection-count=15
jdbc-0.proxool.maximum-connection-lifetime=18000000
jdbc-0.proxool.simultaneous-build-throttle=5
jdbc-0.proxool.recently-started-threshold=40000
jdbc-0.proxool.overload-without-refusal-lifetime=50000
jdbc-0.proxool.maximum-active-time=60000
jdbc-0.proxool.verbose=true
jdbc-0.proxool.trace=true
jdbc-0.proxool.fatal-sql-exception=Fatal error
jdbc-0.proxool.prototype-count=2
jdbc-0.proxool.statistics-log-level=ERROR
 
内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值