问题求助!!各位大哥帮忙!

woainin 2007-04-05 01:43:31
我参考了一些资料,写了个简单的数据库连接池,其中释放数据库连接的代码是:
public synchronized void freeConnection(Connection con) {
// 将指定连接加入到向量末尾
if(freeConnections.size()<this.maxfreeConn){//向空闲池里添加连接
freeConnections.addElement(con);
checkedIn--;
notifyAll();
System.out.print("添加了一个空闲连接:"+freeConnections.size()+"_"+this.maxfreeConn);
}
else{
try{
con.close();
System.out.print("关闭了一连接!");
}catch(SQLException e){
// log("无法关闭连接!!"+con.toString());
}
}
}
我用freeConnections.size()得到每次调用的值都是1,应该是每调用一次加1的,直到freeConnections.size()<this.maxfreeConn;
我这里那里不妥?
freeConnections定义如下:
static private Vector freeConnections = new Vector();
...全文
165 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woainin 2007-04-05
  • 打赏
  • 举报
回复
我真的想不通每次调用时freeConnections.size()为1,而且我是通过这个类创建的唯一对象调用的,就算不加static也不会是这种结果!
woainin 2007-04-05
  • 打赏
  • 举报
回复
我去掉private也是一样的结果!怎么回事呢?
YOYOOOP 2007-04-05
  • 打赏
  • 举报
回复
static private 好好去理解一下这2个

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧