终于来了哈,真的是醉了,看了好多教程,都是很原生的,然后参考了一下公司操作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对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
3.创建工程
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")))
实体
@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