Mybatis配置动态数据源以及参数传递等

Mybatis必知必会

一、Mybatis动态加载数据源

    在配置数据源连接时,在企业的真实开发中数据源一般都会写在配置文件中,而不会直接写在mybatis的核心配置文件中
所以,Mybatis为了方便开发人员去动态的获取数据源连接制定了一些特定的标签用于加载这些数据源。

    具体做法如下:

    <!--用于加载配置文件-->
    <properties resource="jdbc.properties"></properties>

    全部的配置文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--用于加载配置文件-->
    <properties resource="jdbc.properties"></properties>
    
    <environments default="development">
        <environment id="development"
### MyBatis-Plus 动态数据源前端配置 在使用 MyBatis-Plus 实现动态数据源切换时,主要工作是在服务端完成的。然而,为了使前端能够影响到具体的数据源选择,通常会通过请求参数的形式将所需使用的数据源标识传递给后端。 当构建 RESTful API 或其他形式的服务接口时,在控制器层接收来自前端发送过来的选择特定数据源的信息。例如,可以通过 URL 参数、HTTP Header 或者 JSON 请求体中的字段来携带这一信息[^2]。 #### 控制器层处理逻辑示例 ```java @RestController @RequestMapping("/api/data") public class DataController { @Autowired private DataSourceSwitchService dataSourceSwitchService; @GetMapping("/{dataSourceName}/getInfo") public ResponseEntity<String> getInfo(@PathVariable String dataSourceName) { try { // 切换至指定的数据源 DynamicDataSourceContextHolder.push(dataSourceName); // 执行业务逻辑... String result = dataSourceSwitchService.getInfo(); return ResponseEntity.ok(result); } finally { // 清除当前线程绑定的数据源名称 DynamicDataSourceContextHolder.clear(); } } } ``` 在此代码片段中展示了如何根据路径变量 `dataSourceName` 来决定要访问哪个数据源,并执行相应的业务逻辑。注意这里的 `DynamicDataSourceContextHolder.push()` 方法用于设置当前上下文中应使用的数据源名;而 `clear()` 方法则用来清除该设置以便不影响后续的操作[^4]。 对于前端而言,则只需确保每次发起请求时都包含了正确指示目标数据源的相关参数即可。这可能涉及到修改现有的 AJAX 调用或者其他 HTTP 客户端库调用方式,以包含额外的数据源标识符作为查询字符串的一部分或者是 POST 请求的有效载荷之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值