什么是validationQuery?
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?相关推荐
- DBCP针对不同数据库的validationQuery
为什么80%的码农都做不了架构师?>>> Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot creat ...
- 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 : ...
- springboot连接数据库报错testWhileIdle is true, validationQuery not set
问题描述: 使用springboot连接数据库,启动的时候报错:testWhileIdle is true, validationQuery not set.但是不影响系统使用,数据库等一切访问正常. ...
- 什么是validationQuery
validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句.每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQue ...
- SpringCloud 微服务工作笔记:validationQuery: SELECT 1 FROM DUAL
一.问题 控制台报错,主要信息为:execute error. SELECT 1 FROM DUAL 这里的注意点是:Communications link failure:影响Communicati ...
- validationQuery didn't return a row
弄了一个spring+ibatis的例子,在测试的时候报了下面的错误: Exception in thread "main" org.springframework.jdbc.Un ...
- 严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理
JDK9 引发的血案 1.因为使用mysql-connector的依赖版本对应的mysql数据库冲突,mysql8需要使用8.0.11以上的高版本2.jdk9的反射本身存在BUG,会有warning ...
- SpringBoot整合JDBC、整合Druid数据源详解教程
目录 一.整合JDBC 1. 环境准备 1. 创建数据库 2. 创建SpringBoot项目 3. IDEA连接数据库 2. 编写数据库配置信息 3. 编写测试类测试 4. CRUD操作数据库 1. ...
- MyBatis 切换不同的类型数据库方案
下属案例例当前结合SpringBoot 配置进行讲解. 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持. 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:d ...
最新文章
- eigrp ospf 邻居建立过程比较
- 在windows下安装配置Ulipad
- 董明珠上榜中国杰出商界女性100
- python代码斜率_在Python中准确地测量代码执行时间
- 掌上百度2011java_掌上百度2011通用版 掌上百度 Java空间版
- x509证书cer格式转pem格式
- docker的安装教程以及常用命令(一)
- 图像处理——中值滤波
- SQL Server数据库的管理及维护
- 主成分分析法怎么提取图片中的字_论文中做出CNS高逼格的主成分分析图教程
- python中setattr(),getattr(),hasattr()函数的使用
- R语言与线性回归分析
- 大根堆和小根堆的区别
- Win10安装Ubuntu子系统教程(附安装图形化界面)
- incaformat蠕虫病毒样本分析及查杀防范措施
- 无锡seo揭秘2017年百度核心算法(内部资源)
- CAPL学习之路-测试功能集函数(测试报告部分)
- JSCapture – 基于 HTML5 实现的屏幕捕捉库
- Grizzly:Java NIO框架
- Android平板电脑应用开发的技巧