springboot 集成mongodb并操作简单增删改查

本文详细介绍如何在SpringBoot项目中集成MongoDB,包括添加依赖、配置文件设置、使用MongoTemplate进行CRUD操作,以及直接连接MongoDB的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:

运行环境:jdk 1.8、maven3.5.4、spingboot 2.0、mongodb、等

操作步骤:

第一步:pom文件中添加jar包依赖(正常情况下)

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

非正常情况:已经引入log4j2.、jar包时会产生jar包冲突,需要去除logging如下

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

 

第二步:编写配置文件

此处配置文件为yml文件故为一下格式:

host是你mongodb的地址,如果是本机直接写localhost  port默认 27017  database数据库  username password 看mongodb是否有用户名密码如果没有可以不写

spring:
  data:
    mongodb:
      host: 172.20.94.39
      database: admin
      port: 27017
      username: root
      password: root

第三步:可以直接调用mongodb模板类实现增删改查

示例:运行实现添加功能。更新,查询,删除都可以用 mongoTemplate直接获得方法

 

import com.mongodb.*;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.WriteModel;
import com.rrc.marketing.adsscheduler.AdsMarketingSchedulerApplication;
import com.rrc.marketing.adsscheduler.utils.MongDBUtil;
import com.rrc.marketing.core.po.sem.SemAccountInfoEntity;
import com.rrc.marketing.core.po.sem.SemDownloadTaskEntity;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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.test.context.junit4.SpringRunner;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import org.bson.Document;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = AdsMarketingSchedulerApplication.class)
public class SemKeywortReportDataTests {

    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void testMongodb() {
        SemKeywordReportBaiduEntity semKeywordReportBaiduEntity=new SemKeywordReportBaiduEntity();
        semKeywordReportBaiduEntity.setAccountName("张三");
        semKeywordReportBaiduEntity.setKeyword("关键词1");
        semKeywordReportBaiduEntity.setAccountId(123456L);
        mongoTemplate.save(semKeywordReportBaiduEntity);*/
      
    }
 
     
}

执行成功的结果:

安装NoSQLBooster for Mongo DB windows可视化工具

安装连接步骤自行搜索百度
连接上mongodb数据库查看数据内容 根据实体自动创建文档,

注意:如果实体中有Id字段,又想使用mongodb自己生成的md5主键的话,需要把实体中的id参数去除。这样mongodb自己会生成一个_id 主键,值为不重复的md5字符串。

mongodb有,单条数据增加,批量数据增加。单条更新,批量更新,单条删除。批量删除等功能,此处用mongoTemplate可以得到封装好的方法可以直接使用,也可以换一种连接方式

 

第二种连接方式:直接连接mongodb使用,

同样需要加入上述jar包,然后创建MognDBUtil类,加入连接信息。注意修改ip和库名以及username和password

package com.rrc.marketing.adsscheduler.utils;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;

import java.util.ArrayList;
import java.util.List;

//mongodb 连接数据库工具类
public class MongDBUtil {
    //不通过认证获取连接数据库对象
    public static MongoDatabase getConnect(){
        //连接到 mongodb 服务
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");

        //返回连接数据库对象
        return mongoDatabase;
    }

    //需要密码认证方式连接
    public static MongoDatabase getConnect2(){
        List<ServerAddress> adds = new ArrayList<>();
        //ServerAddress()两个参数分别为 服务器地址 和 端口
        ServerAddress serverAddress = new ServerAddress("172.20.94.39", 27017);
        adds.add(serverAddress);

        List<MongoCredential> credentials = new ArrayList<>();
        //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
        MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("root", "admin", "root".toCharArray());
        credentials.add(mongoCredential);

        //通过连接认证获取MongoDB连接
        MongoClient mongoClient = new MongoClient(adds, credentials);

        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");

        //返回连接数据库对象
        return mongoDatabase;
    }
}

创建之后用测试方法测试插入数据

import com.mongodb.*;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.WriteModel;
import com.rrc.marketing.adsscheduler.AdsMarketingSchedulerApplication;
import com.rrc.marketing.adsscheduler.utils.MongDBUtil;
import com.rrc.marketing.core.po.sem.SemAccountInfoEntity;
import com.rrc.marketing.core.po.sem.SemDownloadTaskEntity;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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.test.context.junit4.SpringRunner;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import org.bson.Document;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = AdsMarketingSchedulerApplication.class)
public class SemKeywortReportDataTests {

    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void testMongodb() {
        MongoCollection<Document> collection =     MongDBUtil.getConnect2().getCollection("user");
        //创建文档
        Document document = new Document("name","张三")
                .append("sex", "男")
                .append("age", 18);
        collection.insertOne(document);
      
    }
 
     
}

查看插入之后的结果:

 

以上就是springboot集成mongodb的简单实例,

感谢观看

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值