电话:0731-83595998
导航

如何使用Java模拟.NET的连接池

来源: 2017-12-23 15:33

 百度广告

.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;

/** 
T数据库连接池工具

 
模拟.NET的连接池,俺一直以为.NET比java优秀

 
Copyright: 可以随便使用,如果有改进最好通知俺

 
Company:自己作品

 
* @version 1.0 
import java.sql.*; 
import java.io.*;

interface OnConnectionClose { 

}

public class DBConnectionPool {

 private static Vector pConnectionVector = new Vector(); 
 private static int minCount = 1; 
 private static String User = ""; 
 private static String DriverName=""; 
  minCount = Value; 

synchronized public static int getMinCount() { 
 }

synchronized public static int getCout() { 
 }

synchronized public static Connection getConnection() throws SQLException { 
  // int aCount=pConnectionVector.size();

  for (int I = 0; I < pConnectionVector.size(); i++) { 
  if (oCon instanceof PoolConnection) { 
  if (!aCon.isUsed()) { 
   break; 

  }

  } 
  pConnection = getNewConnection(); 
  } 

 }

 private static PoolConnection getNewConnection() throws SQLException { 
  { 
  }catch(ClassNotFoundException ex) 
  ex.printStackTrace(); 
  PoolConnection con = new PoolConnection(URL, User, Password); 
  return con; 

synchronized public static void SetJDBC(String url, String user, String password) { 
  User = user; 

 }

synchronized public static void setURL(String url) { 

 }

synchronized public static String getUrl() { 

 } 
 { 
 } 
 { 
 } 
 { 
 } 
 { 
 }

synchronized public static void setDriverName(String dName) 
  DriverName=dName;


 { 
 } 

 

|||
class theOnClose 
 private Vector v; 
  v = vt; 
 public void Action(PoolConnection sender) { 

 } 

class PoolConnection 
 private Connection aCon = null; 
 private boolean inUse = false; 
 private OnConnectionClose onClose = null; 
   oos.defaultWriteObject(); 
 private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { 
 } 
 }

 public PoolConnection(String Url, String User, String Password) throws 

  aCon = DriverManager.getConnection(Url, User, Password); 
  inUse=true;

 }

 public PoolConnection(String Url) throws Exception { 
  closed = false; 
 }

 public Statement createStatement() throws SQLException { 
  //throw new java.lang.UnsupportedOperationException("Method createStatement() not yet implemented."); 
 }

 public PreparedStatement prepareStatement(String sql) throws SQLException {
  //throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented."); 
 }

 public CallableStatement prepareCall(String sql) throws SQLException { 
  //throw new java.lang.UnsupportedOperationException("Method prepareCall() not yet implemented."); 
 }

 public String nativeSQL(String sql) throws SQLException { 
  // throw new java.lang.UnsupportedOperationException("Method nativeSQL() not yet implemented."); 
 }

 public void setAutoCommit(boolean autoCommit) throws SQLException { 
  // throw new java.lang.UnsupportedOperationException("Method setAutoCommit() not yet implemented."); 
 }

 public boolean getAutoCommit() throws SQLException { 
  // throw new java.lang.UnsupportedOperationException("Method getAutoCommit() not yet implemented."); 
 }

 public void commit() throws SQLException { 
  // throw new java.lang.UnsupportedOperationException("Method commit() not yet implemented."); 
 }

 public void rollback() throws SQLException { 
  //throw new java.lang.UnsupportedOperationException("Method rollback() not yet implemented."); 
 }

 public void close() throws SQLException { 
  //throw new java.lang.UnsupportedOperationException("Method close() not yet implemented."); 
  if(DBConnectionPool.getCout()

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
拼团课程更多+
热门排行
  • 长理培训微信公众号
    每日推送精彩考试资讯
    长按二维码识别
    微信搜索“ 长理培训
  • 加入QQ群一起来考国网!
    QQ群号:223940140
    点击进入

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端