当前位置:首页 > 全部子站 > IT > 思科认证

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

来源:长理培训发布时间:2017-12-23 15:33:34

 百度广告

.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()

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)