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!";
    }
}

结束

相关推荐
paopaokaka_luck8 小时前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
Pluchon8 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
梦雨生生9 小时前
java开发工具(学习第一天)
java·开发语言·学习
她说可以呀10 小时前
Spring-ai-alibaba文生图
java·人工智能·spring
刘名喜11 小时前
第24篇-全局异常处理
kotlin·springboot
松仔log12 小时前
Java中级——组合和继承
android·java·开发语言
不才不才不不才12 小时前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
snow@li12 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库
sugar__salt12 小时前
Spring 三层架构与 IoC、依赖注入完全指南
java·spring boot·后端·spring·架构·maven·intellij-idea
edwarddamon13 小时前
Spring Cloud 配置热更新与 Bean 代理机制梳理
java·后端