mybatis-plus整合alibaba.druid实现多数据源配置

须知:依托于springboot项目实现

一,添加maven依赖

		
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
            <version>5.1.46version>
        dependency>
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druid-spring-boot-starterartifactId>
            <version>1.1.9version>
        dependency>
        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.1.1version>
        dependency>
        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>dynamic-datasource-spring-boot-starterartifactId>
            <version>3.1.1version>
        dependency>

这些都是必要依赖,springboot的自行添加

二,配置application.yml文件

server:
  port: 8111
spring:
  #autoconfigure: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master:
          url: jdbc:mysql://127.0.0.1:3306/xqd_database?zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql://127.0.0.1:3306/security?zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
        #  <-------------druid数据源配置--------------------->
        druid:
          filters: stat,wall  #监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall
          validation-query: SELECT 1 FROM DUAL  # 连接是否有效的查询语句
          validation-query-timeout: 60000
          initial-size: 50  #初始化时建立物理连接的个数
          min-idle: 50  #最小连接池数量
          max-active: 100  #最大连接池数量
          test-on-borrow: false  #申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
          test-on-return: false #归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
          time-between-eviction-runs-millis: 60000  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          min-evictable-idle-time-millis: 300000  # 配置一个连接在池中最小生存的时间,单位是毫秒
          web-stat-filter:
            exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
          #设置访问druid监控页面的拦截路径及账号和密码
          stat-view-servlet:
            allow:
            login-username: admin
            login-password: admin


mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  typeAliasesPackage: com.mp.entity
  #信息输出设置 日志
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 逻辑删除
  global-config:
    db-config:
      logic-delete-value: 1   #1为删除
      logic-not-delete-value: 0   #0 为没有删除

三,启动类注解配置

在注解中加上这个配置 exclude = DruidDataSourceAutoConfigure.class
因为Spring Boot 框架会自动配置数据源,自动从yml中读取数据源信息,因此我们在配置自定义的数据源的时候,需要exclude = DataSourceAutoConfiguration.class来禁掉数据源的自动配置。

@MapperScan("com.mp.dao")
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class SpringbootMPApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootMPApplication.class,args);

    }
}

主要是这三个部分的配置,再往后就是使用的问题,就正常按照mybatis plus的开发过程就可以。
在mapper或者service的类中或方法中可以加入@DS(“slave_1”)或者@DS(“xx”)的注解,来设置指向不同的数据源,不写则是指向默认数据源,方法上的@DS(“xx”)注解优先级高于类上面的。

我也是从网上这种找的,大部分都是这样子,主要是yml中配置正确了,一般没什么问题,我是成功了,赶快记录一下

你可能感兴趣的:(mysql,spring,boot,mybatis)