1、配置mysql数据源
当一个数据源正常配置即可
2、在已有mysql数据源的基础上配置mongodb
pom.xml 添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>2.4.11</version> </dependency>
yam文件
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/service_center?useUnicode=true&autoReconnect=true&characterEncoding=UTF-8&allowMultiQueries=true username: root password: 12314 driver-class-name: com.mysql.cj.jdbc.Driver jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 data: mongodb: uri: mongodb://localhost:27017/service_center
代码
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import javax.persistence.Id;
@Document("users")
@Data
public class Users {
@Id //自动生成的主键ID 主键 不可重复 自带索引
private String _id;
//年龄
@Field("age")
private Integer age;
//姓名
@Field("name")
private String name;
//租户id
@Field("tenant_id")
private String tenantId;
}
@Component
public class UserServices {
@Resource
private TenantService tenantService; //mysql的数据源
@Resource
private MongoTemplate mongoTemplate; //mongodb的数据源
/**
* 描 述:更新services集合中的tenantId字段
*/
public void updateTenantId() {
//查询mongodb数据源的所有用户集合
List<Users> userList = mongoTemplate.findAll(Users.class);
for (Usersitem : userList) {
//通过用户id去mysql的数据源查询用户所属的租户信息
Tenant vo = tenantService.getTenantByUserId(item.getId() + "");
Update update = new Update();
if (vo != null ) {
update.set("tenant_id", vo.getId());
//把租户id更新到用户集合中
mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(item.get_id())), update, Users.class);
}
}
}
}