SpringBoot集成MongoDB(1)|(入门-增删改查功能实现)

SpringBoot集成MongoDB(1)|(入门-增删改查功能实现)


章节

第一章链接: SpringBoot集成MongoDB(1)|(入门-增删改查功能实现)
第二章链接: SpringBoot集成MongoDB(2)|(中级-数据统计、集合、管道处理)

前言

本章节主要介绍SpringBoot项目集成MongoDB的一些相关知识,包括集成版本、依赖、集成方式、以及简单的使用。查看需要对Springboot项目有一定的了解。

一、MongoDB是什么?

mongodb和redis一样是一种NoSQL存储介质,存储读取快,但实质上它又是一种介于关系型数据库(如mysql,数据存在磁盘中)和非关系型数据库(如redis,数据存在内存中)的介质,它数据存在磁盘,但读取又借助内存机制映射进行,所以集成了关系型和非关系型的各自优点。它的设计是基于分布式储存的,可用集群部署来分压

二、集成步骤

1.依赖引入

pom依赖如下,主要列出SpringBoot依赖版本以及MongoDB版本,其他需要依赖自行添加

    <!-- Springboot 版本 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.7</version>
        <relativePath/>
    </parent>
    
     <!-- mongodb 依赖 -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
     </dependency>

2.文件配置

yml配置,此处为单机配置,集群模式uri

spring:
  data:
    mongodb:
      uri: mongodb://用户名:密码@127,。0.0.1:port/库名?authSource=admin&authMechanism=SCRAM-SHA-1

3.定义数据集(collection)

定义数据库集合,类似于mysql的表,定义好字段,该处用了lombok表达式,如不需要可自定义set、get方法取代

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Document(collection = "m_employe")
public class EmployeeDto {
    @Id
    private String id;
    @Indexed
    private String name;
    @Indexed
    private String no_id;
    private EmpInfoPo info;
    private String dept;
}

EmpInfoPo 实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EmpInfoPo {
    private int age;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birth;
    private int gender;
    private String like;
}

4.服务层代码

通过mongoTemplate对象对mongoDb数据库进行操作,mongoTemplate有springboot容器创建管理,用户不需要进行配置,使用的时候注入即可,controller层没有贴入,可自行编写。

@Service
public class EmployeeService {

    private static final Logger logger = LoggerFactory.getLogger(EmployeeService.class);

    @Autowired
    private MongoTemplate mongoTemplate;

    public EmployeeDto insertEmployee(EmployeeDto employeeDto) {
        return mongoTemplate.insert(employeeDto);
    }

    public long deleteEmployee(String id) {
        Query query = new Query(new Criteria().and("id").is(id));
        DeleteResult remove = mongoTemplate.remove(query, EmployeeDto.class);
        return remove.getDeletedCount();
    }

    public long updateEmployee(EmployeeDto employeeDto) {
        Query query = new Query(new Criteria().and("name").is(employeeDto.getName()));
        Update update = new Update()
                .set("dept", employeeDto.getDept())
                .set("info.like", employeeDto.getInfo().getLike());
        UpdateResult res = mongoTemplate.updateFirst(query, update, EmployeeDto.class);
        return res.getMatchedCount();
    }

    public EmployeeDto getEmployee(String id) {
        Query query = new Query(new Criteria().and("id").is(id));
        return mongoTemplate.findOne(query, EmployeeDto.class);
    }
}

总结

以上就是SpringBoot集成MongoDb数据库内容,内容较简单,适合入门。后期会深入使用MongoDb并总结分享。(如果大家需要源码留言)

第一章链接: SpringBoot集成MongoDB(1)|(入门-增删改查功能实现)
第二章链接: SpringBoot集成MongoDB(2)|(中级-数据统计、集合、管道处理)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值