-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
你好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
`