创建SpringBoot工程时勾选如下技术:
pom.xml文件内依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-mongodbartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.4.1version>
dependency>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-pool2artifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.2.8version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>cn.hutoolgroupId>
<artifactId>hutool-allartifactId>
<version>5.7.17version>
dependency>
dependencies>
@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实现序列化与反序列化接口
//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
@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);
}
}
}