急:怎么把java类封装成SDK,还要放入连接池,怎么搞啊,大神们?

 我来答
土贼托出克宰掉
2014-05-07 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:72.6万
展开全部

呵呵  这哥们是新手  从描述问题上来看就可以看出  你的意图估计是这样:

你想把一个类或一些类打包成jar文件,至于这个jar文件有什么api,我从你所说的连接池来看应该是创建数据库连接的一些api吧,你想把这些连接丢给连接池来管理,对吗?


首先,你封装好的创建连接的api,系统初始化时就创建一定数量的的连接。

第二,把这些连接丢给连接池。

第三,让连接池来维护你的连接,如果连接池中的连接数少于你定的阀值,就让其再调用你之前封装的api创建一些连接,再纳入连接池中。如此循环。

第四,程序要使用连接就直接从连接池中取。


  // 初始化连接池
  String connUrl = "jdbc:mysql://your.database.domain/yourDBname"; 
  String driver = "com.mysql.jdbc.Driver"; 
  private Map<java.sql.Connection, String> connectionPool = null; 
  private void initPool() { 
    try { 
      connectionPool = new HashMap<java.sql.Connection, String>(); 
      Class.forName(driver); 
      java.sql.Connection con = DriverManager.getConnection(dbUrl); 
      for (int poolInd = poolSize; poolInd < 0; poolInd++) { 
        connectionPool.put(con, "AVAILABLE"); 
      } 
  }
  
  // 取连接
public java.sql.Connection getConnection() throws ClassNotFoundException, SQLException
  {
      boolean isConnectionAvailable = true;
      for (Entry<java.sql.Connection, String> entry : connectionPool.entrySet()) {
          synchronized (entry) {
              if (entry.getValue()=="AVAILABLE") {
                  entry.setValue("NOTAVAILABLE");
                  return (java.sql.Connection) entry.getKey();
              }
              isConnectionAvailable = false;
          }
      }
      if (!isConnectionAvailable) {
          Class.forName(driver);
          java.sql.Connection con = DriverManager.getConnection(connUrl);
          connectionPool.put(con, "NOTAVAILABLE");
          return con;
      }
      return null;
  }
  
  // 释放连接
  public void closeConnection(java.sql.Connection connection) throws ClassNotFoundException, SQLException {
        for (Entry<java.sql.Connection, String> entry : connectionPool.entrySet()) {
            synchronized (entry) {
                if (entry.getKey().equals(connection)) {
                    //Getting Back the conncetion to Pool
                    entry.setValue("AVAILABLE");
                }
            }
        }
    } 
  
  
  基本上连接池的实际工作原理就是这样,当然建议使用开源现成的C3P0,DBCP。
追问
请问客户端与服务端的连接可以放入连接池管理吗
多年以后夏季BW0e5
2014-05-07
知道答主
回答量:13
采纳率:0%
帮助的人:10.8万
展开全部
你的问题根本各种错误,请想好了在说
追问
高手,是这样的,我们老板然我把客户端一些程序做成SDK,他说他要放入连接池,据我了解连接池是JDBC用的,抑郁了,求指导。
追答
jar包是封装的吗。jar包是打包,封装用在类上。你的问题我不说很清楚,是要自己写一个类,打包吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java紧挨va
2014-05-07 · TA获得超过880个赞
知道小有建树答主
回答量:690
采纳率:50%
帮助的人:327万
展开全部
是封装成jar包吧?
追问
封装jar包容易,就是不知道SDK和JAR包的区别在哪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式