直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊

开始进入正题

一、技术介绍

@TOC

1.MongoDB是什么?

  • MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。

与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本【参考文献】

利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

二、使用步骤

1.引入maven库

代码如下(示例):

1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>2.4.1</version> 5 <relativePath/> 6 </parent> 7 <dependencies> 8 <dependency> 9 <groupId>org.springframework.boot</groupId> 10 <artifactId>spring-boot-starter-data-mongodb</artifactId> 11 </dependency> 12</dependencies>

2.具体使用示例

MongoDB封装:

1/** 2 * mongo db助手 3 * 4 * @Author: heyuhua 5 * @Date: 2021/1/19 9:52 6 */ 7@Component 8public class MongoDBHelper { 9 10 @Autowired 11 private MongoTemplate mongoTemplate; 12 13 /** 14 * 保存 15 * 16 * @param t 17 * @param <T> 18 * @return 19 */ 20 public <T> T save(T t) { 21 return mongoTemplate.save(t); 22 } 23 24 /** 25 * 保存 26 * 27 * @param t 28 * @param collectionName 29 * @param <T> 30 * @return 31 */ 32 public <T> T save(T t, String collectionName) { 33 return mongoTemplate.save(t, collectionName); 34 } 35 36 /** 37 * 查询 38 * 39 * @param query 40 * @param tClass 41 * @param <T> 42 * @return 43 */ 44 public <T> List<T> find(Query query, Class<T> tClass) { 45 return mongoTemplate.find(query, tClass); 46 } 47 48 /** 49 * 查询所有 50 * 51 * @param tClass 52 * @param <T> 53 * @return 54 */ 55 public <T> List<T> findAll(Class<T> tClass) { 56 return mongoTemplate.findAll(tClass); 57 } 58 59 60} 61 62

3.配置文件 代码如下(示例):

1server: 2 port: 8088 3 4 5spring: 6 #mongodb配置 7 data: 8 mongodb: 9 uri: mongodb://admin:admin@127.0.0.1:27017/admin 10

4.单元测试 测试代码如下(示例):

1 package com.hyh.core.test; 2 3import com.hyh.core.test.base.HyhTest; 4import com.hyh.core.test.po.Person; 5import com.hyh.mongodb.helper.MongoDBHelper; 6import org.junit.Test; 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.data.mongodb.core.query.Criteria; 9import org.springframework.data.mongodb.core.query.CriteriaDefinition; 10import org.springframework.data.mongodb.core.query.Query; 11import org.springframework.data.mongodb.core.query.TextCriteria; 12 13import java.util.List; 14 15/** 16 * MongoDb Test 17 * 18 * @Author: heyuhua 19 * @Date: 2021/1/19 10:28 20 */ 21public class MongoDBTest extends HyhTest { 22 23 @Autowired 24 private MongoDBHelper mongoDBHelper; 25 26 27 @Test 28 public void testSave() { 29 Person person = new Person(); 30 person.setName("heyuhua"); 31 person.setAge(25); 32 mongoDBHelper.save(person); 33 Person person2 = new Person(); 34 person2.setName("hyh"); 35 person2.setAge(52); 36 mongoDBHelper.save(person2); 37 } 38 39 @Test 40 public void testSaveCollection() { 41 Person person = new Person(); 42 person.setName("heyuhua"); 43 person.setAge(25); 44 mongoDBHelper.save(person, "personCollection"); 45 Person person2 = new Person(); 46 person2.setName("hyh"); 47 person2.setAge(52); 48 mongoDBHelper.save(person2, "personCollection"); 49 } 50 51 @Test 52 public void testFindAll() { 53 List<Person> list = mongoDBHelper.findAll(Person.class); 54 for (Person person : list) { 55 System.out.println("name=" + person.getName() + ",age=" + person.getAge()); 56 } 57 } 58 59 @Test 60 public void testFind() { 61 Criteria criteria = new Criteria(); 62 criteria.and("age").gte("25"); 63 Query query = new Query(criteria); 64 List<Person> list = mongoDBHelper.find(query,Person.class); 65 for (Person person : list) { 66 System.out.println("name=" + person.getName() + ",age=" + person.getAge()); 67 } 68 } 69 70 @Test 71 @Override 72 public void test() { 73 System.out.println("---MongoDb Test---"); 74 } 75 76 77}

最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

可以的话请给我一个三连支持一下我哟??????【获取资料】

在这里插入图片描述

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )