Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
生活随笔
收集整理的這篇文章主要介紹了
Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:
com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1124)
問題分析:
問題: 此為數據庫連接池等待超時問題。服務端無法通過Druid連接池與數據庫之間建立連接對象。
數據庫連接池使用步驟:
- 聲明靜態數據源成員變量
- 創建連接池對象
- 定義公有的得到數據源的方法
- 定義得到連接對象的方法
- 定義關閉資源的方法
- 具體模板案例
本問題為數據庫連接超時,緣由:在JavaWeb中接口實現層在使用完數據庫連接池,未關閉數據庫連接池。 超出數據庫連接池的最大連接數目。
解決方式:
在相應的接口實現層,添加相應Druid連接池關閉代碼即可。
DruidUtils.close(conn,ps);
具體案例代碼:
public class LoginServiceImpl implements LoginService {@Overridepublic String findPhone(String phone) {PreparedStatement ps = null;ResultSet rs = null;Connection con = null;String sql = "select * from user where phone = " + phone;try {con = DruidUtils.getConnection();ps = con.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()){String out_password = rs.getString("password");return out_password;}} catch (Exception e) {e.printStackTrace();}finally {/*** 問題卻少代碼處。*/DruidUtils.close(con,ps);}return null;}
}
問題反思:
本人在學習數據庫連接池時,存在概念理解不清晰之處。在后期實踐過程中,未能正確關閉Druid數據庫連接池導致問題產生。望再接下的開發道路中,應當更加腳踏實地,準確理解各類工具概念原理,并且遵循工具使用規范,不可想當然依照個人理解來操作。否則會造成不必要的工作負擔。同時也應當保持理智的探索創新精神。
總結
以上是生活随笔為你收集整理的Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分治算法的设计思想(二分检索、二分归并排
- 下一篇: JDBC与数据库连接工具对比分析