1. 解决方案
背景描述: 项目需要将mysql数据库换成Oracle数据库,配置好数据源后,启动报错:
解决方案:
- application.yml 中修改(配置了多数据源):
spring:
datasource:
dynamic:
druid:
validationQuery: SELECT 1 FROM DUAL
-
application.yml 中修改(没配置多数据源):
spring: datasource: validationQuery: SELECT 1 FROM DUAL
2. DUAL
DUAL: 一张虚拟表,输出一条记录。
-
从 DUAL 中输出一个常量 1
SELECT 1 FROM DUAL
- 对于 Oracle ,
select
必须有表名,所以不能省略from dual
- 对于 MySQL,
select
可以省略表名
- 对于 Oracle ,
-
在 application.yml 中,通过此配置用来检测数据库是否有效
spring: datasource: validationQuery: SELECT 1 FROM DUAL
-
一些案例:
# 检查数据库是否在线——1—在线 SELECT 1 FROM DUAL # 查看当前用户——用户名@主机ip SELECT USER() FROM DUAL; # 查看当前时间 SELECT SYSDATE() FROM DUAL;