springboot整合mongodb

 更新时间:2023年03月31日 17:25:08   作者:Demon丶冷漠  
这篇文章主要介绍了springboot如何整合mongodb,mongodb的安装和使用,感兴趣的同学可以参考阅读本文

1.mongodb的安装和简介

1.1简介

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

1.2安装

网上安装的教程也比较多,我在这里就不再多说了。直接提供一下我自己的db安装包和可视化安装包,这里的版本可能有点旧,需要新的包可以自行去网上下载!

数据库链接:https://pan.baidu.com/s/1Pu7ijrzmzkYEp-jRgHENbA     提取码:7cz2 

可视化工具链接:https://pan.baidu.com/s/1ZBe_F5Eab1KYk6GAVono6w  提取码:9g55 

1.3配置环境变量和检查安装情况

这里的配置类似于jdk的配置,不再多说!查看安装和启动数据库

2.springboot集成mongodb

为了节省篇幅,好多注释和空行都去掉了,大家见谅!

2.1pom文件中maven的引入

<!-- mongodb -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.2properties文件配置

#################mongodb################
#spring.data.mongodb.uri=mongodb://username:password@localhost:27017/test
spring.data.mongodb.uri=mongodb://localhost:27017/springboot

2.3dao层的编写

package com.lengmo.dao;
 
import com.lengmo.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import java.util.List;
 
@Component
public class MongoDbDao {
    @Autowired
    private MongoTemplate mongoTemplate;
    public void save(Student s) {
        mongoTemplate.save(s);
    }
    public Student get(Query query) {
        return mongoTemplate.findOne(query,Student.class);
    }
    public List<Student> findAll() {
        return mongoTemplate.findAll(Student.class);
    }
    public void update(Query query, Update update) {
        mongoTemplate.updateMulti(query,update,Student.class);
    }
    public void delete(Query query) {
        mongoTemplate.remove(query,Student.class);
    }
}

2.4service层的编写

这里要熟悉mongodb的一些常规操作方法,多用多练习即可!!!!

package com.lengmo.service;
 
import com.lengmo.dao.MongoDbDao;
import com.lengmo.entity.Hobbies;
import com.lengmo.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
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 java.util.List;
 
@Service
public class MongoDbService {
    @Autowired
    private MongoDbDao mongoDbDao;
    public void save() {
        Student s=new Student();
        s.setName("lis");
        s.setAge(17);
        s.setSex(1);
        s.setHeight(182);
        Hobbies h=new Hobbies();
        h.setHname("swing");
        s.setHobbies(h);
        mongoDbDao.save(s);
    }
    public Student get() {
       //and查询
        /* Criteria criteriaName=Criteria.where("name").is("lisi");
        Criteria criteriaAage=Criteria.where("age").is(17);
        Criteria andCriteria = new Criteria();
        andCriteria.andOperator(criteriaName,criteriaAage);
        Query query=new Query(andCriteria);*/
        //or查询
        Criteria criteriaName=Criteria.where("name").is("lisi");
        Criteria criteriaAage=Criteria.where("age").gt(16);
        Criteria orCriteria = new Criteria();
        orCriteria.orOperator(criteriaName,criteriaAage);
        Query query=new Query(orCriteria);
 
        return  mongoDbDao.get(query);
    }
    public List<Student> findAll() {
        return mongoDbDao.findAll();
    }
    public void update() {
        Query query=new Query(Criteria.where("name").is("zhangsan"));
        Update update=new Update();
        update.set("age",30);
        update.set("height",188);
        update.set("hobbies.hname","basketball");
        mongoDbDao.update(query,update);
    }
    public void delete() {
        Query query=new Query(Criteria.where("name").is("zhangsan"));
        mongoDbDao.delete(query);
    }
}

2.5conreoller层的编写

package com.lengmo.controller;
 
import com.lengmo.entity.Student;
import com.lengmo.service.MongoDbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
 
@RestController
@RequestMapping("/mongodb")
public class MongoDbController {
    @Autowired
    private MongoDbService mongoDbService;
    @RequestMapping("/save")
    public void save(){
        mongoDbService.save();
    }
    @RequestMapping("/get")
    public Student get(){
        return mongoDbService.get();
    }
    @RequestMapping("/findAll")
    public List<Student> findAll(){
        return mongoDbService.findAll();
    }
 
    @RequestMapping("/update")
    public void update(){
        mongoDbService.update();
    }
    @RequestMapping("/delete")
    public void delete(){
        mongoDbService.delete();
    }
}

2.6实体类层的编写(两个类放一起了,你们记得分开)

package com.lengmo.entity;
import lombok.Data;
import javax.persistence.Id;
 
@Data
//之所以没有像 mysql那样需要@table标签去标注我们的表名与实体类的对应关系。是因为 mongodb默认类名即与表名对应。
public class Student{
    @Id
    private String id;
    private String name;
    private Integer age;
    private Integer sex;
    private Integer height;
    private Hobbies hobbies;
}
 
 
 
package com.lengmo.entity;
import lombok.Data;
 
@Data
public class Hobbies {
    private  String hname;
}

至此所有的整合就完成了,接下来就是去验证各个方法的使用了!

到此这篇关于springboot整合mongodb的文章就介绍到这了,更多相关springboot整合mongodb内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于mongoDB的聚合操作_aggregate()归纳详解

    关于mongoDB的聚合操作_aggregate()归纳详解

    这篇文章主要介绍了关于mongoDB的聚合操作_aggregate()归纳详解,关系是关联关系的一种,是强的关联关系,聚合是整体和个体之间的关系,聚合关系也是通过实例变量实现的。在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分,需要的朋友可以参考下
    2023-07-07
  • mongodb命令行连接及基础命令总结大全

    mongodb命令行连接及基础命令总结大全

    大家可能平时在开发过程中都使用客户端工具来连接和查询mongodb,但是一般生产当中的数据库是不允许本地客户端连接的,下面这篇文章主要给大家介绍了关于mongodb命令行连接及基础命令总结的相关资料,需要的朋友可以参考下
    2024-04-04
  • 常用的MongoDB查询语句的示例代码

    常用的MongoDB查询语句的示例代码

    最近做了几个规则逻辑。用到mongo查询比较多,就是查询交易信息跑既定规则筛选出交易商户,使用聚合管道进行统计和取出简单处理后的数据,用SQL代替业务代码逻辑的判断,本文给大家介绍Mongodb查询语句的示例代码,一起看看吧
    2021-07-07
  • MongoDB聚合运算符$dateFromString详解

    MongoDB聚合运算符$dateFromString详解

    $dateFromString聚合运算符将日期时间字符串转换为日期对象,本文给大家介绍MongoDB聚合运算符$dateFromString的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Mongodb使用索引进行查询优化的操作方法

    Mongodb使用索引进行查询优化的操作方法

    为集合建立合适的索引,能够有效的减少查询操作时扫描数据的数量 ,从而提高查询效率,简化了mongodb内部查询工作,这篇文章主要介绍了Mongodb使用索引进行查询优化的操作方法,需要的朋友可以参考下
    2024-06-06
  • MongoDB修改数据的2种方法

    MongoDB修改数据的2种方法

    这篇文章主要介绍了MongoDB修改数据的2种方法,需要的朋友可以参考下
    2014-05-05
  • mongodb如何对文档内数组进行过滤的方法步骤

    mongodb如何对文档内数组进行过滤的方法步骤

    这篇文章主要介绍了mongodb如何对文档内数组进行过滤的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • MongoDB 常用的数据类型和基本操作

    MongoDB 常用的数据类型和基本操作

    这篇文章主要介绍了MongoDB 常用的数据类型和基本操作,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下
    2021-03-03
  • MongoDB排序时内存大小限制与创建索引的注意事项详解

    MongoDB排序时内存大小限制与创建索引的注意事项详解

    在数据量超大的情形下,任何数据库系统在创建索引时都是一个耗时的大工程,下面这篇文章主要给大家介绍了关于MongoDB排序时内存大小限制与创建索引的注意事项的相关资料,需要的朋友可以参考下
    2022-05-05
  • 分享MongoDB修改oplog大小的4种方法

    分享MongoDB修改oplog大小的4种方法

    这篇文章主要介绍了分享MongoDB修改oplog大小的4种方法,文章基于MongoDB修改oplog大小展开其方法的介绍,需要的小伙伴可以参考一下
    2022-04-04

最新评论