1. 环境搭建
创建SpringBoot工程时勾选如下技术:
pom.xml文件内依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--实用的工具包依赖)-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.17</version>
</dependency>
</dependencies>
2. 搭建目录结构
3. 各层内容
- dao层
@Mapper
public interface MembersDao extends BaseMapper<Members> {
}
- 实体类
@Data
@Document(collation = "members")
public class Members implements Serializable {
@Id// mongodb主键
private int id;
private String studentName;
@Indexed //mongodb索引
private String studentId;
@TableField(exist = false)
private String identityCard;
private String tel;
private String dormitoryAddress;
@TableLogic//逻辑删除字段,1_删除,0_未删除
private int deleted;
//该字段表中未出现,通过设置TableField的exist属性不报错
@TableField(exist = false)
private String birthday;
}
注: Serializable实现序列化与反序列化接口
- service层
//MybatisPlus帮助实现业务层快速开发
public interface IMembersService extends IService<Members> {
}
@Service
public class MembersImpl extends ServiceImpl<MembersDao, Members> implements IMembersService {
}
- 配置文件
server:
port: 80
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.*.*** :3306/data211
username: root
password: root
redis:
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
#redis集群
cluster:
nodes:
- 192.168.*.***:7001
- 192.168.*.***:7002
- 192.168.*.***:7003
- 192.168.*.***:8001
- 192.168.*.***:8002
- 192.168.*.***:8003
data:
mongodb:
uri: mongodb://192.168.*.* :27017/data211
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
# 配置别名
type-aliases-package: com.data211.pojo
global-config:
db-config:
# 主键自增长
id-type: auto
# 表名前缀
table-prefix: data211_
# 逻辑删除
logic-delete-value: 1
logic-not-delete-value: 0
# 控制台输出操作数据库日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4. 测试
@SpringBootTest
class Data211ApplicationTests {
@Resource
private IMembersService membersService;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private MongoTemplate mongoTemplate;
private String DATA211_MEMBERS = "data211:members:";
@Test
void MysqlToMongoDB(){
Members members = membersService.getById(1);
Members save = mongoTemplate.save(members);
System.out.println(save);
}
@Test
void MysqlToRedis(){
int[] num ={4,21};
for (int i : num) {
Members members = membersService.getById(i);
//hutool工具包提供,将对象序列化为json字符串
String s = JSONUtil.toJsonStr(members);
stringRedisTemplate.opsForValue().set(DATA211_MEMBERS + members.getStudentName(),s);
}
}
}
查看redis
存入成功!
查看mongodb
存入成功!