Closed Chris2018998 closed 5 years ago
连接池作用等同于一个图书馆,有借有还的动作。 连接池的连接数一般是有限的,因此使用完毕后,需要及时归还池中,以便其他线程借取, 如果连接长时间不关闭,尤其是在所有连接消耗完毕后,那么其他借用者会出现过时间等待(表现卡顿,无反应,最后超时)。参考代码
Connection con=null; try{ con = datasource.getConnection(); ............ }finally{ con.close(); // <--- 此处语句很重要。 }
这个地方的close应该是归还到池子的意思吧;用close合适吗? 应该是没有关闭和数据库的连接,而只不过扔回到池子
谢谢提问,
是的,物理连接是不会直接暴露给使用者的,这个地方Close实际是调用代理层 ProxyConnnection的,地方法,代理层ProxyConnnection 是将物理连接归还到池中去了, 并且将自身的状态设置为closed 后续就不能使用了.
连接池作用等同于一个图书馆,有借有还的动作。 连接池的连接数一般是有限的,因此使用完毕后,需要及时归还池中,以便其他线程借取, 如果连接长时间不关闭,尤其是在所有连接消耗完毕后,那么其他借用者会出现过时间等待(表现卡顿,无反应,最后超时)。参考代码