当前位置:首页 » 《关于电脑》 » 正文

SpringBoot集成Mongodb实现增删改查操作

27 人参与  2024年10月16日 18:42  分类 : 《关于电脑》  评论

点击全文阅读


目录

一、Mongodb概念

二、SpingBoot集成Mongodb

三、实现增删改查操作


一、Mongodb概念

MongoDB是一个开源的文档型数据库,属于NoSQL数据库中的一种。它使用BSON(类似于JSON)格式存储数据,具有高性能、高可用性和易于扩展的特点。MongoDB的主要特点包括:

面向文档:MongoDB存储的是BSON格式的数据,这是一种类似JSON的二进制格式,可以存储复杂的数据结构,如数组和嵌套文档。

分布式:MongoDB支持水平扩展,可以通过分片技术将数据分布在多个服务器上,实现高可用性和负载均衡。

高性能:MongoDB提供了丰富的索引类型,支持快速查询和更新操作。此外,它还支持多种查询优化策略,如投影、排序等。

灵活的数据模型:MongoDB允许用户在运行时修改数据结构,无需进行复杂的表结构变更。

高可用性:MongoDB支持自动故障转移和数据冗余,可以在主节点故障时自动切换到备用节点,确保数据的持久性和一致性。

支持多种编程语言:MongoDB提供了多种编程语言的驱动程序和库,如Java、Python、C#等,方便开发者进行集成和使用。

二、SpingBoot集成Mongodb

打开命令行可以看到版本,也可以输入命令:db.version()来查看版本

 pom配置

<dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongo-java-driver</artifactId>    <version>3.12.8</version></dependency>

配置application.properties

spring.data.mongodb.uri=mongodb://localhost:27017/dataBaseName

这里参数dataBaseName需要改成你自己要连接的库名

三、实现增删改查操作

以这张数据表为例子

1.创建实体类

package com.kero99.pojo;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.mapping.Document;import org.springframework.data.mongodb.core.mapping.Field;import com.alibaba.fastjson.annotation.JSONField;@Document(collection = "测试集合")public class TestCollection {@Id    @Field("id")    private String id;    @Field("testName")    private String testName;        @Field("testAge")    private Integer testAge;    @Field("updateTime")    private String updateTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTestName() {return testName;}public void setTestName(String testName) {this.testName = testName;}public Integer getTestAge() {return testAge;}public void setTestAge(Integer testAge) {this.testAge = testAge;}public String getUpdateTime() {return updateTime;}public void setUpdateTime(String updateTime) {this.updateTime = updateTime;}        }

2.实现增删改查mongdb操作

MgdbController实现

package com.kero99.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.kero99.pojo.JSONResult;import com.kero99.service.MgdbDataProcessService;@RestControllerpublic class MgdbController {@Autowiredprivate MgdbDataProcessService mgdbDataProcessService;@RequestMapping("/queryTest")public JSONResult queryTest() {JSONResult result=mgdbDataProcessService.queryTest();return result;}@RequestMapping("/queryAllTest")public JSONResult queryAllTest() {JSONResult result=mgdbDataProcessService.queryAllTest();return result;}@RequestMapping("/addTest")public JSONResult addTest() {JSONResult result=mgdbDataProcessService.addTest();return result;}@RequestMapping("/editTest")public JSONResult editTest() {JSONResult result=mgdbDataProcessService.editTest();return result;}@RequestMapping("/removeTest")public JSONResult removeTest() {JSONResult result=mgdbDataProcessService.removeTest();return result;}}

ServiceImpl实现

package com.kero99.service.impl;import java.time.LocalDateTime;import java.time.ZoneId;import java.util.Date;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import org.springframework.stereotype.Service;import com.alibaba.fastjson2.JSON;import com.alibaba.fastjson2.JSONObject;import com.kero99.pojo.JSONResult;import com.kero99.pojo.TestCollection;import com.kero99.pojo.UserInfo;import com.kero99.service.MgdbDataProcessService;import com.kero99.utils.DateUtils;import com.kero99.utils.UUIDUtil;@Servicepublic class MgdbDataProcessImpl  implements MgdbDataProcessService{@Autowired    private MongoTemplate mongoTemplate;@Overridepublic JSONResult queryTest() {  Query query = new Query();  query.addCriteria(Criteria.where("testName").is("111"));  List<TestCollection> userInfo = mongoTemplate.find(query, TestCollection.class,"测试集合");  return JSONResult.ok(userInfo);}@Overridepublic JSONResult addTest() {TestCollection testCollection=new TestCollection();testCollection.setId(UUIDUtil.generateUUID());testCollection.setTestName("111");testCollection.setTestAge(22222);testCollection.setUpdateTime(DateUtils.dateToString(new Date()));        String jsonString = JSONObject.toJSONString(testCollection);        mongoTemplate.insert(jsonString,"测试集合");return JSONResult.ok("插入成功");}@Overridepublic JSONResult editTest() { Query query = new Query();        query.addCriteria(Criteria.where("_id").is("670f83635f62f209a8335335"));        Update update = new Update();        update.set("testName", "555");        mongoTemplate.updateMulti(query, update, "测试集合");return JSONResult.ok("修改成功");}@Overridepublic JSONResult removeTest() { Query query = new Query();        query.addCriteria(Criteria.where("_id").is("670f83635f62f209a8335335"));        mongoTemplate.remove(query,"测试集合");return JSONResult.ok("删除成功");}@Overridepublic JSONResult queryAllTest() {       List<TestCollection> result = mongoTemplate.findAll(TestCollection.class, "测试集合");       return JSONResult.ok(result);}}


点击全文阅读


本文链接:http://zhangshiyu.com/post/172792.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1