• 【开发篇】八、SpringBoot整合MongoBD


    1、整合

    导入MongoBD的起步依赖:(这个starter背后是MongoDB的驱动和其他依赖,在这儿也可以看出命名的规律,redis的就是spring-boot-starter-data-redis)

    <dependency>    
    	<groupId>org.springframework.bootgroupId>  
    	<artifactId>spring-boot-starter-data-mongodbartifactId>
    dependency>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    书写相关配置:

    # 只写URI即可操作数据库,其余细节配置自行添加
    spring:  
      data:    
        mongodb:      
          uri: mongodb://localhost/testDB
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在需要操作数据的地方注入MongoTemplate对象

    @Autowired
    MongoTemplate mongoTemplate;
    
    • 1
    • 2

    2、简单示例

    调用指令对应的方法或API完成CRUD:

    @Test
    void testSave(@Autowired MongoTemplate mongoTemplate){
    
        Book book = new Book();     
        
        mongoTemplate.save(book);
    
    }
    
    @Test
    void testFind(@Autowired MongoTemplate mongoTemplate){
    
        List<Book> all = mongoTemplate.findAll(Book.class);  
         
        System.out.println(all);
        
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3、一点思考

    到这儿,可以发现,关于SpringBoot整合第三方技术框架,实现步骤可以抽象出以下几步:

    • 引入相关的依赖或者起步依赖
    • application.yaml中写配置(在配置文件中直接输入关键字来找可能的配置
    • 使用封装好的工具对象或Bean来完成操作,如JdbcTemplate、RedisTemplate、MongoTemplate…

    此时,就可(在UT中)进行简单的试运行,若出错,分析报错信息,从中找解决思路即可。

    4、MongoDB的安装

    这里简单整理下MongoDB的基本知识,后续专门学习MongoDB了再写笔记。

    MongoDB是一个开源、高性能、无模式文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库

    安装只写Windows下的,Linux的yum或者docker启动等后续学习时再整理:

    • 下载
    https://www.mongodb.com/try/download
    
    • 1
    • 进入解压缩后的目录新建一个数据目录,如:/data/db

    • 启动Mongo服务端,首次会有一个初始化的动作

    mongod --dbpath=..\data\db
    
    • 1
    • 客户端连接Mongo
    mongo --host=127.0.0.1 --port=27017
    
    • 1

    最后,Windows下安装Mongo可能有以下报错:

    在这里插入图片描述

    报错的原因是你当前的操作系统是阉割版的操作系统,即缺少相关dll文件,解决方法为:

    • 下载对应的dll文件(通过互联网搜索即可)
    • 拷贝到windows安装路径下的system32目录中
    • 执行命令以下注册对应dll文件
    regsvr32 vcruntime140_1.dll
    
    • 1

    5、MongoDB的CRUD语法

    以下的集合名称,集合即其他数据库中的table:

    • 新增
    db.集合名称.insert/save/insertOne(文档)
    
    • 1
    • 修改
    db.集合名称.update(条件,{操作种类:{文档}})
    
    • 1
    • 删除
    db.集合名称.remove(条件)
    
    • 1
    • 基础查询
    查询全部:db.集合.find();
    
    查第一条:db.集合.findOne()
    
    查询指定数量文档:db.集合.find().limit(10)		//查10条文档
    
    跳过指定数量文档:db.集合.find().skip(20)		//跳过20条文档
    
    统计:db.集合.count()
    
    排序:db.集合.sort({age:1})				//按age升序排序
    
    投影:db.集合名称.find(条件,{name:1,age:1})		//仅保留name与age域
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 条件查询
    基本格式:db.集合.find({条件})
    
    模糊查询:db.集合.find({域名:/正则表达式/})		//等同SQL中的like,比like强大,可以执行正则所有规则
    
    条件比较运算:db.集合.find({域名:{$gt:}})		//等同SQL中的数值比较操作,例如:name>18
    
    包含查询:db.集合.find({域名:{$in:[1,值2]}})		//等同于SQL中的in
    
    条件连接查询:db.集合.find({$and:[{条件1},{条件2}]})	//等同于SQL中的and、or
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    Git使用
    二叉树层序遍历算法
    less与sass
    虚拟机桥接模式下没有无线网卡选项
    MyEclipse 下载、安装教程
    shell反弹
    Android扫码连接WIFI实现
    【MySql】MySQL中InnoDB支持的四种事务隔离级别名称,以及区别和能解决的问题。
    Java全栈开发第一阶段--01.Java语言概述(开发环境搭建)
    【题解】JZOJ3854 分组
  • 原文地址:https://blog.csdn.net/llg___/article/details/133301294