`

JDBC连接池的testQuery/validationQuery设置

 
阅读更多

 在《Tomcat中使用Connector/J连接MySQL的超时问题》帖子中想要增加对连接池中连接的测试/验证,防止数据库认为连接已死而Web应用服务器认为连接还有效的问题,Mysql文档中提到Tomcat文档中的例子中用的是validationQuery,但是网上还有很多帖子写的是testQuery,到底用哪一个呢?



此外,测试/验证连接池连接的SQL语句也因数据库而异:
Efficient SQL test query or validation query that will work across all (or most) databases
DBCP - validationQuery for different Databases

综合上述两个帖子,汇总结果如下:
数据库 测试/验证查询
MySQL SELECT 1
PostgreSQL SELECT 1
Microsoft SQL Server SELECT 1
SQLite SELECT 1
H2 SELECT 1
Ingres SELECT 1
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1 或
SELECT current date FROM sysibm.sysdummy1
Apache Derby VALUES 1 FROM SYSIBM.SYSDUMMY1 或
SELECT 1 FROM SYSIBM.SYSDUMMY1
HSQLDB SELECT 1 FROM any_existing_table WHERE 1=0 或
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
Informix select count(*) from systables
分享到:
评论

相关推荐

    简单的jdbc连接池类

    总之,这个简单的jdbc连接池类实现了基础的数据库连接管理,对于学习数据库连接池的工作原理和编写自己的连接池实现非常有帮助。虽然它的功能可能不如商业级连接池强大,但对于小型项目或教学示例来说,已经足够实用...

    java jdbc 连接池

    - `validationQuery`:用于验证连接是否有效的SQL查询。 5. **优点**: - 性能提升:复用已有的连接,减少创建和销毁连接的开销。 - 资源管理:自动管理连接的生命周期,避免资源泄露。 - 故障恢复:连接池可以...

    java.lang.NoClassDefFoundError: javax/validation/valueextraction/ValueExtractorDeclarationException

    java.lang.NoClassDefFoundError: javax/validation/valueextraction/ValueExtractorDeclarationException  今天部署环境遇到这个问题,查了好长时间终于解决了; 问题原因: 由于jar包hibernate-validator、...

    TOMCAT6.0配置数据库连接池

    - `maxWait` 设置连接池在没有可用连接时的最大等待时间(毫秒)。 - `logAbandoned` 设置是否记录被丢弃的连接。 - `username` 和 `password` 分别表示数据库用户名和密码。 - `driverClassName` 指定 JDBC ...

    数据库的连接池

    3. HikariCP:一个高性能的数据库连接池,被誉为“最快的JDBC连接池”。 4. Druid:阿里巴巴开源的数据库连接池,具有监控、日志和SQL解析等功能。 5. Tomcat JDBC Connection Pool:Tomcat服务器内置的连接池,轻量...

    数据源和连接池

    2. **C3P0**: C3P0是一个强大的JDBC连接池管理工具包,提供了完整的JDBC连接池实现,支持JDBC 3 规范和JDBC 2 的标准扩展。 - **特点**: - 支持JNDI、支持XML配置文件。 - 内置缓存Statement功能。 - 支持连接...

    数据库连接池的配置 完整版

    8. **测试连接SQL**(validationQuery):用于验证数据库连接是否有效的SQL语句,如`SELECT 1`。 9. **测试连接间隔**(testOnBorrow/testOnReturn):在借用和归还连接时是否进行有效性检查。 10. **自动关闭超时...

    Tomcat5配置Mysql JDBC数据库连接池

    - **Validation Query**:可以留空或者设置为 `SELECT 1` - 完成后点击“Save”、“Commit Changes”。至此,数据源配置完成。 #### 三、修改配置文件 1. **修改`web.xml`** - 在 `%TOMCAT_HOME%\conf\...

    Tomcat连接池的配置

    - `validationQuery`:用于验证数据库连接是否有效,如`SELECT 1`。 - `testOnBorrow`:在借用连接时执行验证查询,确保连接可用。 - `testOnReturn`:在归还连接时执行验证查询。 - `testWhileIdle`:在空闲时执行...

    awesome-datasets, 面向 papers/experiments/validation的精选数据集的精选列表.zip

    awesome-datasets, 面向 papers/experiments/validation的精选数据集的精选列表 出色的数据集面向 papers/experiments/validation.的精选数据集的精选列表Awesome数据集分类规则半监督回归模型时间序列无监督( 群集)...

    tomcat 连接池的配置笔记以及测试源码

    3. 空闲超时:`testOnBorrow`或`validationQuery`配置不当可能导致连接在返回池前无法验证,进而被标记为不可用。 4. 数据库连接异常:如网络问题,数据库服务未启动,或权限问题等。 五、测试源码 测试连接池的...

    JAVA 开发数据库连接池jar包

    - validationQuery:用于验证连接是否有效的SQL查询 例如,使用HikariCP的配置可能如下: ```java HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb"); config....

    Tomcat5配置MysqlJDBC数据库连接池可用.pdf

    标题中的“Tomcat5配置MysqlJDBC数据库连接池可用”指的是在Tomcat 5版本中设置MySQL数据库的JDBC连接池的过程。这个过程对于任何Web应用程序运行在Tomcat服务器上,需要与MySQL数据库交互是至关重要的。下面将详细...

    Tomact5.5连接池的配置

    3. **验证查询**:通过`testOnBorrow`和`validationQuery`属性,可以在借用连接时执行一个SQL查询来检查其有效性。 4. **监控与日志**:开启连接池的日志记录,可以帮助我们监控连接池的运行状态,及时发现并解决...

    Tomcat6配置连接池

    - `validationQuery`: 验证查询语句,用于测试连接的有效性。 - `username`: 数据库用户名。 - `password`: 数据库密码。 **注意**:如果使用的数据库不同,需要相应地调整`url`和`driverClassName`字段。 ##### ...

    Tomcat中Mysql数据连接池的配置步骤

    - **Validation Query**:可选,用于验证连接是否可用的SQL语句,例如`SELECT 1`。 4. **保存并提交更改** - 完成设置后,依次点击`Save`、`Commit Changes`、`Log Out`完成数据源的创建。此时,Tomcat会自动更新...

    Spring各种连接池的比较.doc

    其配置中,你可以设置最小连接池大小(minPoolSize)、最大连接池大小(maxPoolSize)以及获取连接时的增量(acquireIncrement)。下面是一个C3P0的配置示例: ```xml ...

    java hibernate中各种连接池比较

    C3P0 是一个开源的 JDBC 连接池,它提供了强大的异常处理机制和自动调整连接池大小的功能。C3P0 的主要配置参数包括: - maxPoolSize:最大连接数 - minPoolSize:最小连接数 - acquireIncrement:当连接池需要创建...

Global site tag (gtag.js) - Google Analytics