多数据源配置这块个人感觉也没有什么,只需要注意以下几点就行。具体的内容我就不多说了直接上代码了,更直观一些
1.pom文件
<!-- 引入Dynamic Datasource用于进行多数据源管理 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.4.2</version>
</dependency>
2.application.yml文件
#服务端口号
server:
port: 8901
#配置数据源
spring:
datasource:
#动态数据源配置
dynamic:
#主数据源
primary: test
datasource:
test:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mytest:
url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
# username: root
# password: root
# url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
# driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis对应的映射文件路径
mybatis:
mapper-locations: classpath:mapper/*.xml
#mybits对应model文件地址
type-aliases-package: com.huawei.model
#mybatis-plus:
# mapper-locations: classpath:/mapper/*.xml
# type-aliases-package: com.huawei.model
3.mapper文件
TestMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huawei.mapper.TestMapper" >
<select id="getInfo" resultType="com.huawei.model.Person">
SELECT id,name,age FROM test WHERE id = #{id}
</select>
</mapper>
TestMapper2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huawei.mapper.TestMapper2" >
<select id="getInfo" resultType="com.huawei.model.Person">
SELECT id,name,age FROM test WHERE id = #{id}
</select>
</mapper>
4.dao层
TestMapper .java
@Mapper //声明当前类为mybits的mapper层
@Repository //将dao层声明为java Bean
public interface TestMapper {
@DS(value = "test")
List<Map<String, Object>> getInfo(String id);
Person save(Person person);
Boolean remove(String id);
Person find(Person person);
}
TestMapper2.java
@Mapper //声明当前类为mybits的mapper层
@Repository //将dao层声明为java Bean
public interface TestMapper2 {
@DS(value = "mytest")
List<Map<String, Object>> getInfo(String id);
Person save(Person person);
Boolean remove(String id);
Person find(Person person);
}
5.service层
@Service
public class TestService {
@Autowired //注入dao层
public TestMapper testMapper;
@Autowired //注入dao层
public TestMapper2 testMapper2;
//业务处理
public String getInfo(String id){
List<Map<String, Object>> list = testMapper.getInfo(id);
JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));
return array.toString();
}
//业务处理
public String getInfo2(String id){
List<Map<String, Object>> list = testMapper2.getInfo(id);
JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));
return array.toString();
}
public Person save(Person person){
return testMapper.save(person);
}
public Boolean remove(String id){
return testMapper.remove(id);
}
public Person find(Person person){
return testMapper.find(person);
}
}
6.controller层
@RestController
public class TestController {
@Autowired //注入service层
public TestService testservice;
@RequestMapping("/testMybatis")
public String testMybatis(String id){
return testservice.getInfo(id);
}
@RequestMapping("/testMybatis2")
public String testMybatis2(String id){
return testservice.getInfo2(id);
}
}
代码构成就是上面这些,如果想要源码的可以在下面下载: