广告位联系
返回顶部
分享到

springboot整合mongodb的介绍

MongoDB 来源:互联网 作者:佚名 发布时间:2024-01-18 22:23:15 人浏览
摘要

1.mongodb的安装和简介 1.1简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用

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的引入

1

2

3

4

5

<!-- mongodb -->

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-mongodb</artifactId>

</dependency>

2.2properties文件配置

1

2

3

#################mongodb################

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

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

2.3dao层的编写

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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的一些常规操作方法,多用多练习即可!!!!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

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层的编写

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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实体类层的编写(两个类放一起了,你们记得分开)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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;

}

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • springboot整合mongodb的介绍

    springboot整合mongodb的介绍
    1.mongodb的安装和简介 1.1简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点
  • MongoDB数据库性能监控介绍

    MongoDB数据库性能监控介绍
    一、MongoDB启动超慢 1、启动日常卡住,根本不用为了截屏而快速操作,MongoDB启动真的超级慢~~ 2、启动MongoDB配置服务器,间歇性失败。 3、查
  • 详细介绍如何更新MongoDB文档的_id
    您无法更新它,但可以保存新 ID 并删除旧 ID。请按照一些步骤更新 MongoDB 的 _id。步骤如下: 第1步:第一步,需要将ObjectId存储到变量中。
  • MongoDB实现创建删除数据库、创建删除表(集合

    MongoDB实现创建删除数据库、创建删除表(集合
    一、 数据库使用 开启 mongodb 服务:要管理数据库,必须先开启服务,开启服务使用 1 mongod --dbpath c:\mongodb 管理 mongodb 数据库:(一定要在新
  • MongoDB数据库基本概念介绍

    MongoDB数据库基本概念介绍
    不管我们要学习什么数据库,都应该学习其中的基础概念,在MongoDB中基本的概念是文档、集合、数据库,下面挨个介绍。 下面的表格将会帮
  • MongoDB连接和创建数据库的方法

    MongoDB连接和创建数据库的方法
    一、连接MongoDB 在连接MongoDB前确保启动MongoDB服务,只需要在MongoDB安装目录的bin目录下执行mongo.exe即可。 执行启动操作后,mongodb在输出一些
  • 使用MongoDB操作文档

    使用MongoDB操作文档
    本篇文章中将讲解如何使用MongoDB操作文档。 文档的数据结构和JSON基本一致,所有存储在集合中的数据都是BSON格式。BSON是一种类似json格式
  • Laravel框架中使用MongoDB数据库的操作

    Laravel框架中使用MongoDB数据库的操作
    1、先确定好自己使用的哪个版本的 Laravel 框架,再决定 composer 哪一个的 MongoDB,我使用的是 Laravel 8 所以我 composer 了 3.8 的MongoDb 2、执行
  • SpringBoot整合mongoDB并自定义连接池的示例代码
    得力于SpringBoot的特性,整合mongoDB是很容易的,我们整合mongoDB的目的就是想用它给我们提供的mongoTemplate,它可以很容易的操作mongoDB数据库。
  • 剖析后OpLog订阅MongoDB的数据变更就没那么难了

    剖析后OpLog订阅MongoDB的数据变更就没那么难了
    前言 我们开源了一个订阅分发mysql的binlog的项目,一直用的非常好,忽然有天开发说能不能支持MongoDB的数据订阅呢,MongoDB的使用度也挺广泛
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计