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

刺骨的言语ヽ痛彻心扉 2022-04-11 11:55 449阅读 0赞

声明:

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

操作步骤:

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

  1. <!--mongodb -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  5. </dependency>

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

  1. <!--mongodb -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-logging</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>

第二步:编写配置文件

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

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

  1. spring:
  2. data:
  3. mongodb:
  4. host: 172.20.94.39
  5. database: admin
  6. port: 27017
  7. username: root
  8. password: root

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

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

  1. import com.mongodb.*;
  2. import com.mongodb.client.MongoCollection;
  3. import com.mongodb.client.MongoDatabase;
  4. import com.mongodb.client.model.InsertOneModel;
  5. import com.mongodb.client.model.WriteModel;
  6. import com.rrc.marketing.adsscheduler.AdsMarketingSchedulerApplication;
  7. import com.rrc.marketing.adsscheduler.utils.MongDBUtil;
  8. import com.rrc.marketing.core.po.sem.SemAccountInfoEntity;
  9. import com.rrc.marketing.core.po.sem.SemDownloadTaskEntity;
  10. import org.apache.commons.lang.StringUtils;
  11. import org.junit.Test;
  12. import org.junit.runner.RunWith;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.boot.test.context.SpringBootTest;
  15. import org.springframework.data.mongodb.core.MongoTemplate;
  16. import org.springframework.data.mongodb.core.query.Criteria;
  17. import org.springframework.data.mongodb.core.query.Query;
  18. import org.springframework.test.context.junit4.SpringRunner;
  19. import tk.mybatis.mapper.entity.Example;
  20. import javax.annotation.Resource;
  21. import org.bson.Document;
  22. import java.security.MessageDigest;
  23. import java.security.NoSuchAlgorithmException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.*;
  26. import java.util.concurrent.ConcurrentLinkedQueue;
  27. @RunWith(SpringRunner.class)
  28. @SpringBootTest(classes = AdsMarketingSchedulerApplication.class)
  29. public class SemKeywortReportDataTests {
  30. @Autowired
  31. private MongoTemplate mongoTemplate;
  32. @Test
  33. public void testMongodb() {
  34. SemKeywordReportBaiduEntity semKeywordReportBaiduEntity=new SemKeywordReportBaiduEntity();
  35. semKeywordReportBaiduEntity.setAccountName("张三");
  36. semKeywordReportBaiduEntity.setKeyword("关键词1");
  37. semKeywordReportBaiduEntity.setAccountId(123456L);
  38. mongoTemplate.save(semKeywordReportBaiduEntity);*/
  39. }
  40. }

执行成功的结果:

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

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FsaWNlX3FpeGlu_size_16_color_FFFFFF_t_70

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

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

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

  1. package com.rrc.marketing.adsscheduler.utils;
  2. import com.mongodb.MongoClient;
  3. import com.mongodb.MongoCredential;
  4. import com.mongodb.ServerAddress;
  5. import com.mongodb.client.MongoDatabase;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. //mongodb 连接数据库工具类
  9. public class MongDBUtil {
  10. //不通过认证获取连接数据库对象
  11. public static MongoDatabase getConnect(){
  12. //连接到 mongodb 服务
  13. MongoClient mongoClient = new MongoClient("localhost", 27017);
  14. //连接到数据库
  15. MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
  16. //返回连接数据库对象
  17. return mongoDatabase;
  18. }
  19. //需要密码认证方式连接
  20. public static MongoDatabase getConnect2(){
  21. List<ServerAddress> adds = new ArrayList<>();
  22. //ServerAddress()两个参数分别为 服务器地址 和 端口
  23. ServerAddress serverAddress = new ServerAddress("172.20.94.39", 27017);
  24. adds.add(serverAddress);
  25. List<MongoCredential> credentials = new ArrayList<>();
  26. //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
  27. MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("root", "admin", "root".toCharArray());
  28. credentials.add(mongoCredential);
  29. //通过连接认证获取MongoDB连接
  30. MongoClient mongoClient = new MongoClient(adds, credentials);
  31. //连接到数据库
  32. MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
  33. //返回连接数据库对象
  34. return mongoDatabase;
  35. }
  36. }

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

  1. import com.mongodb.*;
  2. import com.mongodb.client.MongoCollection;
  3. import com.mongodb.client.MongoDatabase;
  4. import com.mongodb.client.model.InsertOneModel;
  5. import com.mongodb.client.model.WriteModel;
  6. import com.rrc.marketing.adsscheduler.AdsMarketingSchedulerApplication;
  7. import com.rrc.marketing.adsscheduler.utils.MongDBUtil;
  8. import com.rrc.marketing.core.po.sem.SemAccountInfoEntity;
  9. import com.rrc.marketing.core.po.sem.SemDownloadTaskEntity;
  10. import org.apache.commons.lang.StringUtils;
  11. import org.junit.Test;
  12. import org.junit.runner.RunWith;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.boot.test.context.SpringBootTest;
  15. import org.springframework.data.mongodb.core.MongoTemplate;
  16. import org.springframework.data.mongodb.core.query.Criteria;
  17. import org.springframework.data.mongodb.core.query.Query;
  18. import org.springframework.test.context.junit4.SpringRunner;
  19. import tk.mybatis.mapper.entity.Example;
  20. import javax.annotation.Resource;
  21. import org.bson.Document;
  22. import java.security.MessageDigest;
  23. import java.security.NoSuchAlgorithmException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.*;
  26. import java.util.concurrent.ConcurrentLinkedQueue;
  27. @RunWith(SpringRunner.class)
  28. @SpringBootTest(classes = AdsMarketingSchedulerApplication.class)
  29. public class SemKeywortReportDataTests {
  30. @Autowired
  31. private MongoTemplate mongoTemplate;
  32. @Test
  33. public void testMongodb() {
  34. MongoCollection<Document> collection = MongDBUtil.getConnect2().getCollection("user");
  35. //创建文档
  36. Document document = new Document("name","张三")
  37. .append("sex", "男")
  38. .append("age", 18);
  39. collection.insertOne(document);
  40. }
  41. }

查看插入之后的结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FsaWNlX3FpeGlu_size_16_color_FFFFFF_t_70 1

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

感谢观看

发表评论

表情:
评论列表 (有 0 条评论,449人围观)

还没有评论,来说两句吧...

相关阅读