Skip to content

已经给每个datasource单独配置了druid.validation-query,但是项目启动时依然提示错误! #729

@Marcus0605

Description

@Marcus0605
Image

你好Author,已经给每个datasource单独配置了druid.validation-query,但是项目启动时依然提示错误!请问如何解决?

Springboot3 加载代码:
`
import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceBuilder;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import javax.sql.DataSource;

@configuration
@MapperScan(basePackages = "edu.sdpu_weixin_dao.dao.main", sqlSessionFactoryRef = "main_SqlSessionFactory")
public class MainMyBatisPlusConfig {

@Bean
@ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.main")
public DataSource mainDataSource() {
    return DruidDataSourceBuilder.create().build();
}

@Bean
@Primary
public SqlSessionFactory main_SqlSessionFactory(@Qualifier("mainDataSource") DataSource mainDataSource) throws Exception {
     final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
     sqlSessionFactoryBean.setDataSource(mainDataSource);
     sqlSessionFactoryBean.setConfiguration(new MybatisConfiguration());
    return sqlSessionFactoryBean.getObject();
}

}
`

详细配置:
`
spring:
application:
name: sdpu_weixin_web
datasource:
druid:
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: .... # 监控页面登录用户名
login-password: .... # 监控页面登录密码
reset-enable: false
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: ".js,.gif,.jpg,.png,.css,.ico,/druid/*"
filter:
stat:
enabled: true
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
dynamic:
primary: main
druid:
initial-size: 10 #初始创建时建立的连接数
min-idle: 10 #最小空闲连接数
max-active: 10000 #最大的连接池数量
max-wait: 60000 #获取连接的最大等待毫秒数
time-between-eviction-runs-millis: 60000 #两个连接空闲检查之间的时间间隔
min-evictable-idle-time-millis: 30000 #连接在池中最小生存时间后才允许被驱逐
validation-query: SELECT 1
test-while-idle: true #申请连接前检测连接是否有效
test-on-borrow: false #申请连接时进行连接有效性检验
test-on-return: false #归还连接时进行连接有效性检验
pool-prepared-statements: false #是否开启 PreparedStatement 的缓存
filters: stat,wall,slf4j #配置扩展插件,常用的有 stat(监控统计)、wall(SQL防火墙)、log4j(日志)等
max-pool-prepared-statement-per-connection-size: -1 #每个连接上PSCache最大语句数
datasource:
main:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://.......:3306/........?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true
username:.....
password: ......
druid:
validation-query: SELECT 1
log:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@//......:1521/........?allowMultiQueries=true
username: .....
password: .......
druid:
validation-query: SELECT 1 FROM DUAL

server:
port: 8001
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions