须知:依托于springboot项目实现

一,添加maven依赖

		<!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
            <version>5.1.46</version>
        </dependency>
        
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>
        <!--Mybatis-Plus启动器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.1</version>
        </dependency>
        <!-- Mybatis-Plus  多数据源 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.1.1</version>
        </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中配置正确了,一般没什么问题,我是成功了,赶快记录一下

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐