新建实体类User
package org. hx. springboot_dynamic_demo29. model;
public class User {
private Integer id;
private String username;
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
'}' ;
}
public Integer getId ( ) {
return id;
}
public void setId ( Integer id) {
this . id = id;
}
public String getUsername ( ) {
return username;
}
public void setUsername ( String username) {
this . username = username;
}
}
新建UserMapper接口和UserMapper.xml文件
package org. hx. springboot_dynamic_demo29. mapper;
import org. apache. ibatis. annotations. Mapper;
import org. hx. springboot_dynamic_demo29. model. User;
import java. util. List;
@Mapper
public interface UserMapper {
Integer addUser ( User user) ;
List< User> getAllUsers ( ) ;
}
< ? 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= "org.hx.springboot_dynamic_demo29.mapper.UserMapper" >
< insert id= "addUser" >
insert into user ( username) values ( #{ username} ) ;
< / insert>
< select id= "getAllUsers" resultType= "org.hx.springboot_dynamic_demo29.model.User" >
select * from user;
< / select>
< / mapper>
新建UserService类
package org. hx. springboot_dynamic_demo29. service;
import com. baomidou. dynamic. datasource. annotation. DS;
import org. hx. springboot_dynamic_demo29. mapper. UserMapper;
import org. hx. springboot_dynamic_demo29. model. User;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class UserService {
@Autowired
UserMapper userMapper;
@DS ( "master" )
public Integer addUser ( User user) {
return userMapper. addUser ( user) ;
}
@DS ( "slave" )
public List< User> getAllUsers ( ) {
return userMapper. getAllUsers ( ) ;
}
}
在pom.xml中配置扫描xml文件
< resources>
< resource>
< directory> src/ main/ java< / directory>
< includes>
< include> * *
在resources目录下新建application.yaml文件
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组, 默认值即为master
strict: false #设置严格模式, 默认false 不启动. 启动后在未匹配到指定数据源时候会抛出异常, 不启动则使用默认数据源
datasource:
master:
url: jdbc: mysql: / / 192.168 .133 .8 : 33061 / hxdb
username: root
password: 123
driver- class - name: com. mysql. jdbc. Driver
slave:
url: jdbc: mysql: / / 192.168 .133 .8 : 33062 / hxdb
username: root
password: 123
driver- class - name: com. mysql. jdbc. Driver
在测试类中进行测试
package org. hx. springboot_dynamic_demo29;
import org. hx. springboot_dynamic_demo29. model. User;
import org. hx. springboot_dynamic_demo29. service. UserService;
import org. junit. jupiter. api. Test;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. boot. test. context. SpringBootTest;
import java. util. List;
@SpringBootTest
class SpringbootDynamicDemo29ApplicationTests {
@Autowired
UserService userService;
@Test
void contextLoads ( ) {
User user = new User ( ) ;
user. setUsername ( "zhangsan" ) ;
userService. addUser ( user) ;
}
@Test
void test ( ) {
List< User> userList = userService. getAllUsers ( ) ;
System. out. println ( "UserList: " + userList) ;
}
}