【开发篇】八、SpringBoot整合MongoBD

文章目录

  • 1、整合
  • 2、简单示例
  • 3、一点思考
  • 4、MongoDB的安装
  • 5、MongoDB的CRUD语法

1、整合

导入MongoBD的起步依赖:(这个starter背后是MongoDB的驱动和其他依赖,在这儿也可以看出命名的规律,redis的就是spring-boot-starter-data-redis)

<dependency>    
	<groupId>org.springframework.bootgroupId>  
	<artifactId>spring-boot-starter-data-mongodbartifactId>
dependency>

书写相关配置:

# 只写URI即可操作数据库,其余细节配置自行添加
spring:  
  data:    
    mongodb:      
      uri: mongodb://localhost/testDB

在需要操作数据的地方注入MongoTemplate对象

@Autowired
MongoTemplate mongoTemplate;

2、简单示例

调用指令对应的方法或API完成CRUD:

@Test
void testSave(@Autowired MongoTemplate mongoTemplate){

    Book book = new Book();     
    
    mongoTemplate.save(book);

}

@Test
void testFind(@Autowired MongoTemplate mongoTemplate){

    List<Book> all = mongoTemplate.findAll(Book.class);  
     
    System.out.println(all);
    
}

3、一点思考

到这儿,可以发现,关于SpringBoot整合第三方技术框架,实现步骤可以抽象出以下几步:

  • 引入相关的依赖或者起步依赖
  • application.yaml中写配置(在配置文件中直接输入关键字来找可能的配置
  • 使用封装好的工具对象或Bean来完成操作,如JdbcTemplate、RedisTemplate、MongoTemplate…

此时,就可(在UT中)进行简单的试运行,若出错,分析报错信息,从中找解决思路即可。

4、MongoDB的安装

这里简单整理下MongoDB的基本知识,后续专门学习MongoDB了再写笔记。

MongoDB是一个开源、高性能、无模式文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库

安装只写Windows下的,Linux的yum或者docker启动等后续学习时再整理:

  • 下载
https://www.mongodb.com/try/download
  • 进入解压缩后的目录新建一个数据目录,如:/data/db

  • 启动Mongo服务端,首次会有一个初始化的动作

mongod --dbpath=..\data\db
  • 客户端连接Mongo
mongo --host=127.0.0.1 --port=27017

最后,Windows下安装Mongo可能有以下报错:

【开发篇】八、SpringBoot整合MongoBD_第1张图片

报错的原因是你当前的操作系统是阉割版的操作系统,即缺少相关dll文件,解决方法为:

  • 下载对应的dll文件(通过互联网搜索即可)
  • 拷贝到windows安装路径下的system32目录中
  • 执行命令以下注册对应dll文件
regsvr32 vcruntime140_1.dll

5、MongoDB的CRUD语法

以下的集合名称,集合即其他数据库中的table:

  • 新增
db.集合名称.insert/save/insertOne(文档)
  • 修改
db.集合名称.update(条件,{操作种类:{文档}})
  • 删除
db.集合名称.remove(条件)
  • 基础查询
查询全部:db.集合.find();

查第一条:db.集合.findOne()

查询指定数量文档:db.集合.find().limit(10)		//查10条文档

跳过指定数量文档:db.集合.find().skip(20)		//跳过20条文档

统计:db.集合.count()

排序:db.集合.sort({age:1})				//按age升序排序

投影:db.集合名称.find(条件,{name:1,age:1})		//仅保留name与age域

  • 条件查询
基本格式:db.集合.find({条件})

模糊查询:db.集合.find({域名:/正则表达式/})		//等同SQL中的like,比like强大,可以执行正则所有规则

条件比较运算:db.集合.find({域名:{$gt:}})		//等同SQL中的数值比较操作,例如:name>18

包含查询:db.集合.find({域名:{$in:[1,值2]}})		//等同于SQL中的in

条件连接查询:db.集合.find({$and:[{条件1},{条件2}]})	//等同于SQL中的and、or

你可能感兴趣的:(SpringBoot,spring,boot,后端,java)