如何使用模拟的连接池呢
作者 : manboo
.NET的的本身包含连接池功能,而java是在第三方开发包中提高的连接池功能因此,需要去下载第三方的连接池包,但是java的连接池一般都是在EJB或者B/S系统中使用的(虽然也有C/S下的连接池如Borland 在Jbuilder中提供的),在一个服务性系统中使用起来不是很方便.再说使用第三方的开发包也不利于维护.因此决定自己写一个连接池的开发包.此连接池中主要解决的是提高数据库访问性能,并且尽可能减少连接数目.
说明:
此连接池有三个类和一个接口组成,三个类分别是:
DBConnectionPool 数据库连接池,用户可以通过此类来使用连接池的功能.
PoolConnection 一个实现了nnection的warp类,用来和数据库进行通讯.
theOnClose 实现了接口OnConnectionClose的一个类用还处理释放数据库连接的是动作决定是关闭数据库还是返回池中
接口 :
OnConnectionClose:此接口是一个声明,因为本人很不喜欢java的事件机制因此,我经常自己写一些接口来模拟时间,没有java的事件机制那么强大也没有那么复杂.但是效率要比java的事件机制要高那么一点点(笑:).
本来要上传这几个小类的UML图的但是我一点IE就死,所以算了.就只上传代码.还望方家指正.
代码:
package DBTools;
/**
* pT数据库连接池工具 /p
* p模拟.NET的连接池,俺一直以为.NET比java优秀 /p
* pCopyright: 可以随便使用,如果有改进最好通知俺/p
* pCompany:自己作品 /p
* @author董平雷
* @version 1.0
*/
import l.*;
import il.*;
import .*;
interface OnConnectionClose {
public void Action(PoolConnection sender);
}
public class DBConnectionPool {
private static Vector pConnectionVector = new Vector();
// private static int Count=0;
private static int minCount = 1;
private static String URL = \"\";
private static String User = \"\";
private static String Password = \"\";
private static String DriverName=\"\";
synchronized public static void setMinCount(int Value) {
minCount = Value;
}
synchronized public static int getMinCount() {
return minCount;
}
synchronizedpublic static int getCout() {
return ze();
}
synchronized public static Connection getConnection() throws SQLException {
PoolConnection pConnection = null;
// int aCount=ze();
for (int I = 0; I ze(); i++) {
Object oCon = ementAt(i);
if (oCon instanceof PoolConnection) {
PoolConnection aCon = (PoolConnection) oCon;
if (!Used()) {
pConnection = aCon;
break;
}
}
}
if (pConnection == null) {
pConnection = getNewConnection();
d(pConnection);
}
return pConnection;
}
private static PoolConnection getNewConnection() throws SQLException {
try
{
rName( DriverName);
}catch(ClassNotFoundException ex)
{
intStackTrace();
}
PoolConnection con = new PoolConnection(URL, User, Password);
tOnClose(new theOnClose(pConnectionVector));
return con;
}
synchronized public static void SetJDBC(String url, String user, String password) {
URL = url;
User = user;
Password = password;
}
synchronized public static void setURL(String url) {
URL = url;
}
synchronizedpublic static String getUrl() {
return URL;
}
synchronizedpublic static void setUser(String user)
{
盖璞集团会立即采取措施并进行处理。针对涉及质量问题的产品是否采取下架、召回措施以及改善产品质量 User=user;
}
synchronizedpublic static String getUser()
{
return User;
}
synchronizedpublic static void setPassword(String password)
{
Password=password;
}
synchronized public static String getPassword()
{
return Password;
}
synchronized public static voidsetDriverName(String dName)
{
DriverName=dName;
}
synchronized public static String getDriverName()
{
return DriverName;
}
}
上海医院男科治疗哪家好治疗阿尔茨海默病有新药了么
福州卵巢炎治疗费用多少钱
- 上一页:如何使用模式牛
- 下一页:如何使用编写多线程程序的
-
2022年7月7号生肖快乐指数。
2022年7月7号月历好船运基准。 文/易鑫 壬寅年 丁未月 辛酉日 星期四 农历八...
2023-11-20
-
天德钰快充协议芯片产品线成熟 能够满足客户多种不同需求
5V 0.5A曾是iPad充电的标配,而随着1000-2000mAh的大电源开始出现,传统的充电功...
2023-11-10
-
“我是个只有两岁不久拿笔乱画的娃”,网友:起手的圆,我就输了
引言 很多宝贝在小的时候,讨厌涂鸦。这是一种极为好的表现,能修养夫妻...
2023-10-24
-
宝明科技(002992.SZ)拟60亿元在赣州投建锂电池填充铜箔生产基地
宝明科技(002992.SZ)发布公告,为了实现该公司战略目标布局和长远规划,实现...
2023-10-23
-
Ulster霍尔大学优质课程推荐 BSc Nursing Science (Top-up) & MS
弗莱明所大学(Ulster University)位于苏格兰波斯尼亚和黑塞哥维那尔兰东南部贝...
2023-10-19
-
老铁匠:猪肉“浅色”“深色”区别大,教你几招,轻松避开劣质肉
各位读者朋友们大家好,非常感谢阅读我体会的料理社论,经验和大家两人共...
2023-10-15