mongotemplate 为null_SpringBoot2.x集成MongoDB4.0,使用MongoTemplate操作

56cb75bdfb88c6878b972715251bc400.png

终于来了哈,真的是醉了,看了好多教程,都是很原生的,然后参考了一下公司操作mongodb的使用,终于是放出来了参考文章放在尾部,算是声明出处!

1.开发环境

IDEA、Maven、SpringBoot2.0.4、Jdk1.8、MongoDB4.0、MongoDB Compass Community、PostMan


2.MongoDB


传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

c74059a9e5079342f392438ba7fb3e39.png

3.创建工程

765f8d609513069eb601a9c1abe06574.png

4.配置

无密码下配置

server:
  port: 8031

spring:
  application:
    name: spirng-boot-mongodb
  data:
    mongodb:
      host: localhost   #同127.0.0.1
      port: 27017
      database: test    #指定操作的数据库

5.查用API

查询Student文档的全部数据

mongoTemplate

查询Student文档id为id的数据

mongoTemplate

根据query内的查询条件查询

mongoTemplate

修改

mongoTemplate

删除

mongoTemplate

新增

mongoTemplate

使用方法

Query对象
1 创建一个query对象(用来封装所有条件对象),再创建一个criteria对象(用来构建条件)


2 精准条件:criteria.and(“key”).is(“条件”)


3 模糊条件:criteria.and(“key”).regex(“条件”)


4 封装条件:query.addCriteria(criteria)


5 大于(创建新的criteria):Criteria gt = Criteria.where(“key”).gt(“条件”)


6 小于(创建新的criteria):Criteria lt = Criteria.where(“key”).lt(“条件”)

7 Query.addCriteria(new Criteria().andOperator(gt,lt));


8 一个query中只能有一个andOperator()。其参数也可以是Criteria数组。


9 排序 :query.with(new Sort(Sort.Direction.ASC, "age"). and(newSort(Sort.Direction.DESC, "date")))

96b68b37f90b7d9f34a94e5b7f227eb7.png


实体

@Data

实现

@Slf4j

实体2

@Data

实现2

@Service

优化使用


完成以上配置,我们springBoot集成MongoDB环境基本已经搭建好了。
但是在使用中会发现一个问题,假如要对数据库操作多个对象,那岂不是每一个对象Service都需要写一套增删查改的方法。

public 

我们将mongoDB常用的CURD操作封装为通用的父类,然后在不同的业务场景下继承该类,通过泛型和反射获取到正在操作的实体类。
比如我们可以将之前的Book实体类的CURD类进行改造
创建BookMongoDbDao类继承MongoDbDao

@Repository

接下来我们可以改造Book的Service类

原始版本:

@Service

改造版本

@Service

改造后的saveObj2方法的效果与以前的一致,但是大大的提高了开发效率。不需要重复的编写CURD的方法。
总结
通过以上的配置已经完成springboot与mongoDB集成环境的初步搭建,当然了MongoDB在springboot中的使用不仅于此,还有更多的功能和更优雅的使用方式等待着我们去发掘。

参考出处

SpringBoot2.x集成MongoDB_LarsCheng's Blog-CSDN博客​blog.csdn.net
532f328a23b54504148ef1c88c86716b.png
MongoTemplate入门_Rain-CSDN博客​blog.csdn.net
fc2fff6be93b21daf192b24add5bcab8.png
mongoTemplate​www.jianshu.com
df308e806ac27440223fc2ca73117163.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值