当前位置: 首页 > news >正文

50、Spring Boot 详细讲义(七) Spring Boot 与 NoSQL

七 Spring Boot 与 NoSQL

目录

  • MongoDB 集成
  • Redis 集成
  • Elasticsearch 集成

1、 MongoDB 集成

1.1 MongoDB 概述

1.1.1 MongoDB 的基本概念
  • 文档型数据库
    • 数据存储为类似 JSON 的文档结构(BSON 格式)。
    • 每个文档由字段和值对组成,类似于键值对。
    • 支持嵌入式文档和数组,灵活性高。
  • BSON 格式
    • BSON(Binary Serialized JSON)是 JSON 的二进制形式。
    • 比 JSON 更高效,支持更多数据类型(如日期、二进制数据等)。
  • MongoDB 的核心特点
    • 模式自由:无需预定义模式,灵活变更。
    • 高可用性:支持副本集和分片,确保数据可用性。
    • 高扩展性:通过分片处理大规模数据。
    • 高性能:查询优化和索引支持。
1.1.2 MongoDB 的安装与简单使用
  • 安装 MongoDB

    1. 下载:从官方网站下载适合的版本(Community Server 或 Enterprise Server)。
    2. 安装
      • Windows:使用 MSI 安装包安装。
      • Linux:使用包管理器(如 apt、yum)安装。
      • macOS:使用 Homebrew 或手动下载安装。
    3. 启动:运行 mongod 命令启动数据库服务。
  • Mongo Shell 的使用

    • 启动 Shell:在命令行输入 mongo

    • 基本操作:

      # 显示所有数据库  
      show dbs  # 切换到指定数据库(若不存在则创建)  
      use mydb  # 插入文档  
      db.mycol.insertOne({name: "John", age: 30})  # 查询文档  
      db.mycol.find()  
      

1.2 Spring Boot 与 MongoDB 集成

1.2.1 项目结构与依赖配置
  • Maven 依赖
    pom.xml 中添加以下依赖:

    <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-mongodb</artifactId>  
    </dependency>  
    
  • Gradle 依赖
    build.gradle 中添加:

    dependencies {  implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'  
    }  
    
  • 项目结构

    • src/main/java:存放 Java 源文件。
    • src/main/resources:存放配置文件(application.properties)。
1.2.2 使用 Spring Data MongoDB 实现 CRUD 操作
  • 创建文档模型

    @Document(collection = "users")  
    public class User {  @Id  private String id;  private String name;  private int age;  // Getter 和 Setter 方法  
    }  
    
  • 创建getRepository接口

    public interface UserRepository extends MongoRepository<User, String> {  
    }  
    
  • 实现 CRUD 操作

    @Service  
    public class UserService {  @Autowired  private UserRepository userRepository;  public void create(User user) {  userRepository.save(user);  }  public List<User> read() {  return userRepository.findAll();  }  public void update(User user) {  userRepository.save(user);  }  public void delete(String id) {  userRepository.deleteById(id);  }  
    }  
    
1.2.3 MongoDB 配置
  • application.properties 配置

    spring:  data:  mongodb:  uri: mongodb://localhost:27017/  database: mydb  
    
  • 连接池配置

    spring.data.mongodb.connection.pool.size=20  
    

1.3 高级功能

1.3.1 分页查询与排序
  • 分页查询

    public List<User> findAll(Pageable pageable) {  return userRepository.findAll(pageable).getContent();  
    }  
    

    使用方式:

    PageRequest pageRequest = PageRequest

相关文章:

  • 在生信分析中,从生物学数据库中下载的序列存放在哪里?要不要建立一个小型数据库,或者存放在Gitee上?
  • 常见数据结构
  • 【系统分析师之1、绪论+2、数学与工程基础】
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——LED、按键测试
  • 删除win11电脑上的阿尔巴尼亚输入法SQI
  • OSPF综合实验
  • MySQL——流程控制
  • 【Unity笔记】Unity开发笔记:ScriptableObject实现高效游戏配置管理(含源码解析)
  • 全国青少年信息素养大赛 C++算法创意实践挑战赛初赛 集训模拟试卷《二》及详细答案解析
  • ACI EP Learning Whitepaper 3. Disabling IP Data-plane Learning 功能
  • Vue3服务端渲染(SSR)深度调优:架构裂变与性能突围
  • bC一体化是传统批发企业 换道超车的唯一路径
  • Spring Cache(笔记)
  • 第二天 通过脚本控制物体移动和旋转
  • 03 UV
  • Flutter实战(1)-- 调试工具
  • 处理 Flutter 没有反应
  • 【C++算法】59.哈希表_存在重复元素 II
  • 排序算法复杂度及稳定性全解析(八种排序)
  • Spark-SQL核心编程(二)
  • 国家市场监管总局:组织销毁侵权假冒服装、食药等3300吨
  • 青海西宁市公安局原党委委员、副局长王小华被“双开”
  • 历史一刻,两个航天员乘组拍摄全家福
  • 北大学者:过度依赖技术工具可能会削弱人类主动思考的能力
  • 赵志丹任中国地质大学(北京)校长
  • 北朝时期的甲胄