使用java在springboot中利用mybatis-plus进行多数据源操作
整合过程:*创建springboot项目,不要添加Mybatis依赖,然后在pom中添加依赖,可以参考苞米豆官网https://mp.baomidou.com/guide/dynamic-datasource.html#%E6%96%87%E6%A1%A3-documentation
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
第二步,在yml文件中添加多数据源的配置,根据需求配置,本案例为一主一从
spring:
datasource:
dynamic:
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/master
username: test
password: test
slave:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/slave
username: test
password: test
第三步,创建测试类,接口可写可不写,直接调用实现类效果一样
public interface TestService {
List<Map<String, Object>> selectAllMaster();
List<Map<String ,Object>> selectAllSlave();
}
实现类中注入jdbc模板
@Service
public class TestServiceImpl implements TestService {
@Autowired
private JdbcTemplate jdbcTemplate;
@DS("master")
@Override
public List<Map<String, Object>> selectAllMaster() {
return jdbcTemplate.queryForList("select * from master");
}
@DS("slave")
@Override
public List<Map<String ,Object>> selectAllSlave() {
return jdbcTemplate.queryForList("select * from slave");
}
}
直接调用,成功读取数据
@SpringBootTest
class AutoexceltoolApplicationTests {
@Autowired
TestService testService;
@Test
void contextLoads() {
System.out.println(testService.selectAll());
}
@Test
void contextLoads1() {
System.out.println(testService.selectAllSlave());
}
}
mybatis-plus出错多数情况为依赖冲突,在pom文件中shift+ctrl+alt+U可查看依赖树,找到出错的将依赖库移除可解决。
2021.6.21记