Chris2018998 / beecp

A small JDBC Connection pool
Apache License 2.0
88 stars 18 forks source link

连接池使用建议,个人也发个贴 #6

Closed Chris2018998 closed 5 years ago

Chris2018998 commented 5 years ago

连接池作用等同于一个图书馆,有借有还的动作。 连接池的连接数一般是有限的,因此使用完毕后,需要及时归还池中,以便其他线程借取, 如果连接长时间不关闭,尤其是在所有连接消耗完毕后,那么其他借用者会出现过时间等待(表现卡顿,无反应,最后超时)。参考代码

  Connection con=null;
  try{
      con = datasource.getConnection();
      ............
  }finally{
     con.close(); // <---  此处语句很重要。
 }
skyformat99 commented 4 years ago

这个地方的close应该是归还到池子的意思吧;用close合适吗?
应该是没有关闭和数据库的连接,而只不过扔回到池子

Chris2018998 commented 4 years ago

谢谢提问,

是的,物理连接是不会直接暴露给使用者的,这个地方Close实际是调用代理层 ProxyConnnection的,地方法,代理层ProxyConnnection 是将物理连接归还到池中去了, 并且将自身的状态设置为closed 后续就不能使用了.