mysql 多数据源

依赖

复制代码
<dependencies>
        <!--mysql连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--多数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.6.0</version>
        </dependency>

        <!--mybatisplus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

配置文件

复制代码
# 应用服务 WEB 访问端口
server.port=8080

#mybatisplus配置mapper位置
mybatis-plus.mapper-locations=classpath*:mapper/*.xml

# 多数据源配置
spring.datasource.dynamic.primary=master
spring.datasource.dynamic.strict=false

spring.datasource.dynamic.datasource.master.url=****
spring.datasource.dynamic.datasource.master.username=****
spring.datasource.dynamic.datasource.master.password=****
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.dynamic.datasource.slave1.url=****
spring.datasource.dynamic.datasource.slave1.username=****
spring.datasource.dynamic.datasource.slave1.password=****
spring.datasource.dynamic.datasource.slave1.driver-class-name=com.mysql.cj.jdbc.Driver

下面是项目文件结构

就是必须的 mapper domain service impl 这些文件,直接用 mybatisplus的idea插件生成即可

还需要在 impl 上面加上注解

开始测试

复制代码
@RestController
@RequestMapping("/multi")
public class MultiDatasource {
    @Autowired
    private ProductService productService;

    @Autowired
    private TbProductService tbProductService;

    @GetMapping("/product")
    public String product() {

        /*从一个库中查出数据*/
        List<Product> products = productService.listByIds(List.of(1));
        Product product = products.get(0);

        //id            //product_name      //product_description
        //pre_price     //now_price         //create_time
        //creator       //update_time       //editor        //yn
        TbProduct tbProduct = new TbProduct();
        tbProduct.setProductName(product.getTitle());
        tbProduct.setProductDescription(product.getDescription());
        tbProduct.setPrePrice(Long.valueOf(product.getOriginalPrice()));
        tbProduct.setNowPrice(Long.valueOf(product.getActualPrice()));
        tbProduct.setCreateTime(product.getCreateTime());
        tbProduct.setCreator("admin");
        tbProduct.setUpdateTime(product.getUpdateTime());
        tbProduct.setEditor("admin");
        tbProduct.setYn(1);

        tbProductService.save(tbProduct);
        return "Hello, MultiDatasource!";
    }
}

结束

相关推荐
a努力。10 分钟前
国家电网Java面试被问:最小生成树的Kruskal和Prim算法
java·后端·算法·postgresql·面试·linq
朝九晚五ฺ12 分钟前
从零到实战:鲲鹏平台 HPC 技术栈与并行计算
java·开发语言
CUIYD_198914 分钟前
Freemarker 无法转译 & 字符
java·开发语言·spring
自在极意功。21 分钟前
简单介绍SpringMVC
java·mvc·springmvc·三层架构
Yuiiii__26 分钟前
一次并不简单的 Spring 循环依赖排查
java·开发语言·数据库
tkevinjd26 分钟前
JUC4(生产者-消费者)
java·多线程·juc
野槐27 分钟前
java基础-面向对象
java·开发语言
sww_102631 分钟前
Openfeign源码浅析
java·spring cloud
X***07881 小时前
从语言演进到工程实践全面解析C++在现代软件开发中的设计思想性能优势与长期生命力
java·开发语言
smileNicky1 小时前
SpringBoot系列之集成Pulsar教程
java·spring boot·后端