SpringBoot整合MongoDB完整实例代码

作者:小雨青年 时间:2023-10-22 03:42:48 

一、新建项目

我们这次直接从IEDA创建项目,具体配置如下,还是万年的Java8。

SpringBoot整合MongoDB完整实例代码

二、docker-compose 配置mongoDB

docker-compose.yml的具体配置如下,注意的是本地的文件夹data2022可以根据需要改成自己的名称,如果本地还在跑其他MongoDB项目,注意端口号别冲突了。

version: "3"
services:
 mongo:
   image: mongo
   environment:
     MONGO_INITDB_ROOT_USERNAME: root
     MONGO_INITDB_ROOT_PASSWORD: root
   ports:
     - "27018:27017"
   volumes:
     - ~/data2022/mongodb/data:/data/db
     - ~/data2022/mongodb/conf:/data/configdb

启动docker-compose up -d

本地测试连接MongoDB,根据配置,端口为 27018 ,默认用户名密码为 root 。

SpringBoot整合MongoDB完整实例代码

测试连接成功。

三、SpringBoot配置MongoDB

先新建名为ms的数据库,application.yml配置文件如下

server:
 port: 8099
 servlet:
   encoding:
     charset: UTF-8
     force: true
spring:
 data:
   mongodb:
     uri: mongodb://root:root@localhost:27018/ms

启动应用,查看日志,连接成功。

SpringBoot整合MongoDB完整实例代码

问题:Exception authenticating MongoCredential

可能出现的问题 Exception authenticating MongoCredential ,可能是用户没有对应权限,要重新创建一下。

db.createUser({
   user: "root",
   pwd: "root",
   roles: [
       {
           role: "root",
           db: "ms"
       }
   ],
   authenticationRestrictions: [ ],
   mechanisms: [
       "SCRAM-SHA-1"
   ],
   passwordDigestor: "client"
})

四、编写测试类

我们通过MongoTemplate对MongoDB进行数据读写,后面详细

简单写一些方法。

package com.example.springbootwithmongodb.entry;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;

@SpringBootTest
public class CatTest {

@Autowired
   private MongoTemplate mongoTemplate;

@Test
   public void createTest(){
       Cat cat = new Cat();
       cat.setName("糖果");
       cat.setAge(3);
       cat.setLikeCount(100);
       mongoTemplate.insert(cat);
   }

}

测试通过~

SpringBoot整合MongoDB完整实例代码

五、源码地址

本文源码同步更新在gitcode中,地址为 SpringBootWithMongoDB · master · 小雨青年 / Java Demo · GitCode

来源:https://blog.csdn.net/diandianxiyu_geek/article/details/122941015

标签:SpringBoot,整合,MongoDB
0
投稿

猜你喜欢

  • MyBatis-Plus解决逻辑删除与唯一索引的问题

    2022-09-09 00:17:03
  • Spring Boot如何优化内嵌的Tomcat示例详解

    2023-11-13 17:52:53
  • Java中对AtomicInteger和int值在多线程下递增操作的测试

    2023-10-22 18:32:03
  • java文件处理工具类详解

    2022-12-19 22:49:59
  • @SpringBootApplication注解的使用

    2022-09-13 04:53:32
  • 解析c#在未出现异常情况下查看当前调用堆栈的解决方法

    2023-05-18 02:54:04
  • Android中Intent传递对象的两种方法Serializable,Parcelable

    2021-05-24 03:11:58
  • Java 从Set里面取出有序的记录详解及实例

    2021-07-08 09:07:33
  • SpringCloud Gateway 路由配置定位原理分析

    2022-06-10 19:57:47
  • 详解java中产生死锁的原因及如何避免

    2022-04-22 00:36:14
  • java+jsp+struts2实现发送邮件功能

    2023-08-28 18:25:27
  • 简单了解Java编程中抛出异常的方法

    2023-08-07 17:31:49
  • C# List介绍及具体用法

    2021-09-15 07:59:14
  • c#构造初始化的顺序浅析

    2022-10-13 22:14:34
  • Android ListView填充数据的方法

    2022-12-22 06:33:28
  • Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    2023-05-14 01:25:33
  • springboot2.2 集成 activity6实现请假流程(示例详解)

    2022-09-18 08:54:21
  • 浅谈Android View绘制三大流程探索及常见问题

    2022-03-02 00:01:26
  • Android VelocityTracker使用案例详解

    2023-08-29 13:32:03
  • vs2019永久配置opencv开发环境的方法步骤

    2023-11-02 19:38:58
  • asp之家 软件编程 m.aspxhome.com