做php网站用什么软件好,中国建筑考试网入口,好的做问卷调查的网站好,网站建设需要购买服务器么阿丹#xff1a; 之前学习了在MongoDB客户端上的MongoDB语句现在将MongoDB整合到spring项目。 传送门#xff1a;
MongoDB文档--基本概念_一单成的博客-CSDN博客
MongoDB文档--基本安装-linux安装#xff08;mongodb环境搭建#xff09;-docker安装#xff08;挂载数据卷…阿丹 之前学习了在MongoDB客户端上的MongoDB语句现在将MongoDB整合到spring项目。 传送门
MongoDB文档--基本概念_一单成的博客-CSDN博客
MongoDB文档--基本安装-linux安装mongodb环境搭建-docker安装挂载数据卷-以及详细版本对比_一单成的博客-CSDN博客
MongoDB文档--基本安装-linux安装mongodb环境搭建-docker安装挂载数据卷-以及详细版本对比_一单成的博客-CSDN博客
MongoDB文档-基础使用-在客户端dos窗口/可视化工具中使用MongoDB基础语句_一单成的博客-CSDN博客
MongoDB文档-进阶使用-MongoDB索引-createindex()与dropindex()-在MongoDB中使用正则表达式来查找_一单成的博客-CSDN博客 MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoTemplate完成增删改查_一单成的博客-CSDN博客
使用技术介绍 概念说明 spring-data-mongodb 提供 MongoTemplate 与 MongoRepository两种操作方式MongoRepository 操作简单 缺点是不够灵活MongoTemplate 操作灵活在项目中可以灵活使用这两种方式
MongoTemplate MongoTemplate是Spring Data MongoDB项目的一部分它是一个Spring的扩展为使用MongoDB数据库的应用程序提供了抽象层。MongoTemplate提供了一个简单而强大的方法来执行各种数据库操作而无需编写低级别的MongoDB驱动程序代码。
MongoTemplate的主要功能包括
插入和更新文档MongoTemplate提供了一种方便的方法来插入和更新MongoDB数据库中的文档。查询文档MongoTemplate提供了多种查询方法可以使用各种查询参数来检索数据库中的文档包括查询条件、排序、限制和投影。聚合操作MongoTemplate支持聚合框架可以执行复杂的聚合操作如计数、分组、求和等。索引管理MongoTemplate可以创建、删除和查询数据库索引。命令和操作MongoTemplate还支持各种数据库命令和操作如计算数据库统计信息、执行存储过程等。
使用MongoTemplate可以简化MongoDB数据库操作的开发工作提供更高的生产力和更好的可维护性。
MongoRepository
MongoRepository是Spring Data MongoDB项目中的另一个抽象层它是基于MongoTemplate的更高级别的抽象。MongoRepository提供了一个基于注解的接口用于定义与MongoDB数据库的交互。通过使用MongoRepository你可以专注于定义数据访问逻辑而无需编写低级别的数据库操作代码。
MongoRepository的主要功能包括
查询文档MongoRepository提供了一种方便的方法来查询数据库中的文档。通过使用注解你可以定义查询条件、排序、限制和投影。聚合操作MongoRepository支持聚合框架可以执行复杂的聚合操作如计数、分组、求和等。分页查询MongoRepository提供了分页查询功能可以限制查询结果的数量并获取下一页的结果。自定义查询如果你需要执行更复杂的查询操作MongoRepository还提供了自定义查询的方法可以编写存储过程或使用MongoDB的查询语言执行自定义查询。
使用MongoRepository可以使你的代码更加简洁和可维护因为它提供了一种声明式的方式来访问MongoDB数据库。通过注解和自动实现的接口你可以专注于实现业务逻辑而无需关心底层的数据库操作细节。 spring-boot中使用MongoRepository进行增删改查
阿丹 使用MongoRepository的好处是和 MyBatis-Plus很像提供了很多经过封装好的方法。很方便对于简单的增删改查来说。但是我发现竟然没有修改的封装好的用法。
1、引入依赖 核心依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-mongodb/artifactId
/dependency
这个依赖是Spring Boot提供的用于与MongoDB数据库进行交互的starter依赖。它包含了所需的库和依赖项以便在使用Spring Boot开发应用程序时方便地使用MongoDB。
具体来说这个依赖提供了以下功能
自动配置Spring Boot会自动配置与MongoDB数据库的连接包括创建Mongo客户端、设置连接属性等。MongoTemplate自动配置了MongoTemplate这是一个用于执行各种数据库操作的核心类。通过使用MongoTemplate你可以方便地进行文档的插入、更新、查询等操作。MongoRepository自动配置了MongoRepository这是一个基于注解的接口用于定义与MongoDB数据库的交互。通过继承MongoRepository你可以方便地进行查询、聚合操作等。模板化操作通过使用MongoTemplate和MongoRepository你可以以模板化的方式执行数据库操作这使得代码更加简洁、可读性更好。
总之通过添加这个依赖可以方便地使用Spring Boot与MongoDB进行集成而无需手动配置和编写低级别的数据库操作代码。
其他依赖如果小伙伴想直接开启一个简单的spring-boot项目可直接拿走
dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-mongodb/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scopeexclusionsexclusiongroupIdorg.junit.vintage/groupIdartifactIdjunit-vintage-engine/artifactId/exclusion/exclusions/dependency/dependencies
2、写入连接MongoDB配置文件采用application.yml文件
spring:data:mongodb:host: 127.0.0.1 #指定MongoDB服务地址port: 27017 #指定端口默认就为27017database: article#指定使用的数据库(集合)authentication-database: admin # 登录认证的逻辑库名username: #用户名password: #密码注意 如果没有设置连接的用户的话可以根据实际情况删除一部分配置文件。 相对于MySQL不一样的是在MySQL中一个用户可以管理多个数据库但是MongoDB每个库都要一个独立的管理用户连接的时候需要输入对应的用户密码。
3、有关实体类的书写有坑注意
主要注解 1、Document,对应MongoDB中的文档也就是数据库中的最基本的数据单元由键值对组成类似于JSON格式可以存储不同字段字段的值可以包括其他文档数组和文档数组。 2、Id主键用来将成员变量的值映射为文档的_id的值可以看我之前的文档有讲到如何给_id赋值。 3、Index索引索引是一种特殊的数据结构存储在一个易于遍历读取的数据集合中能够对数据文档中的数据进行排序。索引可以大大提高文档查询效率。 4、Field字段文档中的字段类似于MySQL中的列概念。 5、Aggregation聚合聚合主要用于数据处理例如统计平均值、求和等。
示例
package com.adn.mongodb.common;import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;/*** 阿丹实体类* */
Data
Document(collection ExampleDB)
public class Adn {IdField(_id)private Long id;//阿丹主键Field(name)private String name;//阿丹名称Field(gender)private String gender;//阿丹性别Field(specialty)private String specialty;//特长描述
}示例中的 Document就是集合的名字
注意: 一定要去写Field(name)这个注解映射到字段的名字不然查到的都是空
4、使用MongoRepository来完成简单增删改查
这个都是底层封装好的代码这里直接上代码如果有疑惑欢迎评论区讨论一下子
controller控制层
package com.adn.mongodb.controller;import com.adn.mongodb.common.Adn;
import com.adn.mongodb.service.MongodbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;/*** 控制层器* */
RestController
public class MongodbController {Autowiredprivate MongodbService mongodbService;/*** 根据id来进行查询* */GetMapping(/adn/{id})public Adn adn(PathVariable String id) {System.out.println(id);return mongodbService.adn(id);}/*** 增加数据插入数据* */PostMapping(/save)public Adn save(RequestBody Adn adn) {return mongodbService.save(adn);}// RequestMapping(/adn)// public String adn() {/*** 修改* */PutMapping(/update)public Adn update(RequestBody Adn adn) {return mongodbService.update(adn);}/*** 插入因为没有对应的方法所以使用单查询删除新增来处理* *//*** 删除* */DeleteMapping(/delete/{id})public void delete(PathVariable String id) {mongodbService.delete(id);}}service层接口
package com.adn.mongodb.service;import com.adn.mongodb.common.Adn;public interface MongodbService {Adn adn(String id);Adn save(Adn adn);Adn update(Adn adn);void delete(String id);
}service层实现类
package com.adn.mongodb.service.Impl;import com.adn.mongodb.common.Adn;
import com.adn.mongodb.mapper.AdnMapper;
import com.adn.mongodb.service.MongodbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
import org.springframework.stereotype.Service;import java.util.Optional;Service
public class MongodbServiceImpl implements MongodbService {Autowiredprivate AdnMapper adnMapper;Overridepublic Adn adn(String id) {Adn res null;OptionalAdn byId adnMapper.findById(id);System.out.println(byId);boolean present byId.isPresent();if(present){res byId.get();}return res;}Overridepublic Adn save(Adn adn) {return adnMapper.save(adn);}Overridepublic Adn update(Adn adn) {return adnMapper.updata(adn);}Overridepublic void delete(String id) {adnMapper.deleteById(id);}}dao层我因为习惯所以写了mapper
重点要继承MongoRepository这个类
package com.adn.mongodb.mapper;import com.adn.mongodb.common.Adn;
import org.springframework.data.mongodb.repository.MongoRepository;import java.util.Optional;public interface AdnMapper extends MongoRepositoryAdn, String {}