目录

基本概念

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):数据库连接池。

c0afeb1063211de734e92dbd410245cf.png

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

Logo

一站式 AI 云服务平台

更多推荐