热搜
您的位置:首页 >> 法律

Java模拟NET的连接池

2019年11月05日 栏目:法律

在之前:.NET的ADO.NET的本身包含连接池功能,而java是在第三方开发包中提高的连接池功能因此,需要去下载第三方的连接池包,但是

在之前:

.NET的ADO.NET的本身包含连接池功能,而java是在第三方开发包中提高的连接池功能因此,需要去下载第三方的连接池包,但是java的连接池一般都是在EJB或者B/S系统中使用的(虽然也有C/S下的连接池如Borland 在Jbuilder中提供的),在一个服务性系统中使用起来不是很方便.再说使用第三方的开发包也不利于维护.因此决定自己写一个连接池的开发包.此连接池中主要解决的是提高数据库访问性能,并且尽可能减少连接数目.

说明:

此连接池有三个类和一个接口组成,三个类分别是:

DBConnectionPool 数据库连接池,用户可以通过此类来使用连接池的功能.

PoolConnection 一个实现了java.sql.Connection的warp类,用来和数据库进行通讯.

theOnClose 实现了接口OnConnectionClose的一个类用还处理释放数据库连接的是动作决定是关闭数据库还是返回池中

接口 :

OnConnectionClose:此接口是一个声明,因为本人很不喜欢java的事件机制因此,我经常自己写一些接口来模拟时间,没有java的事件机制那么强大也没有那么复杂.但是效率要比java的事件机制要高那么一点点(笑:).

本来要上传这几个小类的UML图的但是我一点IE就死,所以算了.就只上传代码.还望方家指正.

代码:

package DBTools;

/**

* <p>T数据库连接池工具 </p>

* <p>模拟.NET的连接池,俺一直以为.NET比java </p>

* <p>Copyright: 可以随便使用,如果有改进通知俺</p>

* <p>Company:自己作品 </p>

* @author董平雷

* @version 1.0

*/

import java.sql.*;

import java.util.*;

import java.io.*;

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 pConnectionVector.size();

}

synchronized public static Connection getConnection() throws SQLException {

PoolConnection pConnection = null;

// int aCount=pConnectionVector.size();

for (int I = 0; I < pConnectionVector.size(); i++) {

Object oCon = pConnectionVector.elementAt(i);

if (oCon instanceof PoolConnection) {

PoolConnection aCon = (PoolConnection) oCon;

if (!aCon.isUsed()) {

pConnection = aCon;

break;

}

}

}

if (pConnection == null) {

pConnection = getNewConnection();

pConnectionVector.add(pConnection);

}

return pConnection;

}

新生儿护理注意事项有哪些?有哪些禁忌事项?
上环一般需要多少钱 专家告诉你?价格不一样的区别在哪?
种植牙上的“取经之路”和“养护经书”是怎样的?
牙齿矫正年龄
不孕筛查做什么
  • 友情链接
  • 合作媒体