validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句。每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQuery。

DataBase validationQuery
hsqldb select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1
MySql select 1
Microsoft SqlServer select1
postgresql select version()
ingres select 1
derby values 1
H2 select 1

如果你想支持多种数据库,你可以根据JDBC驱动来获取validationQuery,这里有个简单的类,根据JDBC驱动名称来获取validationQuery

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class ValidationQuery {public String getValidationQuery(String driver) {Properties properties = loadProperties();return properties.getProperty(driver, "");}private Properties loadProperties() {String propertyFilename = "db.validation.properties";try {Properties props = new Properties();InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream(propertyFilename);props.load(resourceAsStream);resourceAsStream.close();return props;} catch (IOException e) {throw new RuntimeException("Cannot load properties file '" + propertyFilename + "'.", e);}}//Example: Get validationQuery for hsqldbpublic static void main(String[] args) {System.out.println(new ValidationQuery().getValidationQuery("org.hsqldb.jdbcDriver"));}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

创建“db.validation.properties”文件,并放置在classpath目录下

#hsqldb
org.hsqldb.jdbcDriver=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
#Oracle
oracle.jdbc.driver.OracleDriver=select 1 from dual
#DB2
com.ibm.db2.jcc.DB2Driver=select 1 from sysibm.sysdummy1
#mysql
com.mysql.jdbc.Driver=select 1
org.gjt.mm.mysql.Driver=select 1
#microsoft sql
com.microsoft.sqlserver.jdbc.SQLServerDriver=select 1
#postgresql
org.postgresql.Driver=select version();
#ingres
com.ingres.jdbc.IngresDriver=select 1
#derby
org.apache.derby.jdbc.ClientDriver=values 1
#H2
org.h2.Driver=select 1

什么是validationQuery?相关推荐

  1. DBCP针对不同数据库的validationQuery

    为什么80%的码农都做不了架构师?>>>    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot creat ...

  2. com.alibaba.druid.pool.DruidDataSource  : testWhileIdle is true, validationQuery not set

    2019-10-13 16:37:56.965 ERROR 8088 --- [on(6)-127.0.0.1] com.alibaba.druid.pool.DruidDataSource   : ...

  3. springboot连接数据库报错testWhileIdle is true, validationQuery not set

    问题描述: 使用springboot连接数据库,启动的时候报错:testWhileIdle is true, validationQuery not set.但是不影响系统使用,数据库等一切访问正常. ...

  4. 什么是validationQuery

    validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句.每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQue ...

  5. SpringCloud 微服务工作笔记:validationQuery: SELECT 1 FROM DUAL

    一.问题 控制台报错,主要信息为:execute error. SELECT 1 FROM DUAL 这里的注意点是:Communications link failure:影响Communicati ...

  6. validationQuery didn't return a row

    弄了一个spring+ibatis的例子,在测试的时候报了下面的错误: Exception in thread "main" org.springframework.jdbc.Un ...

  7. 严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理

    JDK9  引发的血案 1.因为使用mysql-connector的依赖版本对应的mysql数据库冲突,mysql8需要使用8.0.11以上的高版本2.jdk9的反射本身存在BUG,会有warning ...

  8. SpringBoot整合JDBC、整合Druid数据源详解教程

    目录 一.整合JDBC 1. 环境准备 1. 创建数据库 2. 创建SpringBoot项目 3. IDEA连接数据库 2. 编写数据库配置信息 3. 编写测试类测试 4. CRUD操作数据库 1. ...

  9. MyBatis 切换不同的类型数据库方案

    下属案例例当前结合SpringBoot 配置进行讲解. 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持. 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:d ...

最新文章

  1. eigrp ospf 邻居建立过程比较
  2. 在windows下安装配置Ulipad
  3. 董明珠上榜中国杰出商界女性100
  4. python代码斜率_在Python中准确地测量代码执行时间
  5. 掌上百度2011java_掌上百度2011通用版 掌上百度 Java空间版
  6. x509证书cer格式转pem格式
  7. docker的安装教程以及常用命令(一)
  8. 图像处理——中值滤波
  9. SQL Server数据库的管理及维护
  10. 主成分分析法怎么提取图片中的字_论文中做出CNS高逼格的主成分分析图教程
  11. python中setattr(),getattr(),hasattr()函数的使用
  12. R语言与线性回归分析
  13. 大根堆和小根堆的区别
  14. Win10安装Ubuntu子系统教程(附安装图形化界面)
  15. incaformat蠕虫病毒样本分析及查杀防范措施
  16. 无锡seo揭秘2017年百度核心算法(内部资源)
  17. CAPL学习之路-测试功能集函数(测试报告部分)
  18. JSCapture – 基于 HTML5 实现的屏幕捕捉库
  19. Grizzly:Java NIO框架
  20. Android平板电脑应用开发的技巧

热门文章

  1. XMLHttpRequest: 网络错误 0x80700013的解决方案
  2. 爬取今日头条上的图片
  3. Ominibus F4V3 Pro飞控原理图和接线图
  4. 20个戏剧性电影特效luts包 Dramatic LUTs
  5. Golang代码质量检查工具GolangCI-Lint(学习笔记)
  6. 值得一读的品牌类好书
  7. 如何与比自己强的人交往?
  8. 【进制转换】输出二进制补码
  9. 仲舟の奇妙算法(二)【个人版】
  10. 智慧城市总体方案解读