目录
基本概念
1、建立数据库连接
2、从连接池取连接
3、验证获取的连接
4、发送statement到数据库
5、读取查询结果
参考资料
基本概念
DBMS(DataBase Management System):数据库管理系统。常见的有MySQL、PostgreSQL、Oracle等。
JDBC(Java DataBase Connectivity):Java数据库连接。在Java应用中,我们使用JDBC提供的标准API访问DBMS。一共有4类JDBC驱动。
DBCP(DataBase Connection Pool):数据库连接池。
![a9945b08971933c0b2883c8d01cdc06e.png](https://i-blog.csdnimg.cn/blog_migrate/9a9ab6ae56c72b4115d058fd224cd95e.jpeg)
1、建立数据库连接
MySQL JDBC为例
connectTimeout:建立连接的超时时间。
- 单位毫秒。
- 默认0,表示无限。
socketTimeout
- 单位毫秒。
- 默认0,表示无限。
配置方式
2、从连接池取连接
Tomcat JDBC为例
maxWait:当没有可用连接&已达到最大活跃连接数(maxActive)时,连接池等待连接被归还的最大时间, 超过时间则抛出异常。
- 单位毫秒。
- 默认30000。
3、验证获取的连接
Tomcat JDBC为例
validationQueryTimeout:连接验证失败前的超时时间。通过在执行 validationQuery 的语句上调用 java.sql.Statement.setQueryTimeout(seconds) 来实现。池本身并不会让查询超时,完全是由 JDBC 来强制实现。若该值小于或等于 0,则禁用该功能。
- 单位秒。
- 默认-1。
4、发送statement到数据库
5、读取查询结果
参考资料
https://brightinventions.pl/blog/database-timeouts/
https://www.cubrid.org/blog/understanding-jdbc-internals-and-timeout-configuration