pom关键模块如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>dm</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>18</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.8</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
<version>4.3.0</version>
</dependency>
<!-- lombok(可选) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
后台配置文件
spring:
datasource:
dynamic:
primary: master
strict: false
datasource:
dm1:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://127.0.0.1:5236/DAMENG
username: USER1
password: PASSWORD
dm2:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://127.0.0.1:5236/DAMENG
username: USER2
password: PASSWORD
实体对象如下:
@Data
@TableName("tb_user")
public class Userimplements Serializable {
private String id;
private String name;
private String loginName;
}
UserMapper.sqlmap.xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="UserMapper">
<select id="getUserInfo" parameterType="String" resultMap="User">
select id as "id", name as "name",login_name as "loginName"
where id=#{id}
</select>
</mapper>
Mapper对象如下:
@Mapper
public interface UserMapper extends BaseMapper<User>{
User getUserInfo(id);
}
Service层代码如下:
@Slf4j
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User userInfo(String userId) {
return userMapper.getUserInfo(userId);
}
}
使用 @DS 注解
• 标注在方法上 :在需要切换数据源的方法上添加 @DS 注解,指定具体的数据源名称。比如@DS("dm2"),则此方法会查询配置文件(spring.datasource.dynamic.datasource.dm2)对应的数据库,
• 标注在类上 :若在一个类上添加 @DS 注解,则该类中的所有方法默认都使用指定的数据源。但若类中的某个方法也标注了 @DS 注解,则方法上的注解会覆盖类上的注解,以方法指定的数据源为准。
文章
阅读量
获赞