须知:依托于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中配置正确了,一般没什么问题,我是成功了,赶快记录一下