Spring Boot2.5 使用 Spring Data

文章目录

  • Spring Boot2.5 使用 Spring Data
    • Spring Boot2.5 使用 Spring Data链接 MySQL 数据库
    • Spring Data 新特性
      • Spring Data 新特性
    • Spring Data 架构
      • Spring Data 核心模块
      • Spring Boot2.5 实战 MySQL
      • Spring Data JPA 框架
        • 配置 MySQL 参数:
        • POM 配置:
        • 仓储 Repository 泛型接口:
        • Java 高级面试题
    • Spring Boot 2.5 实战 MongoDB 数据库与面试题
      • 一、Spring Boot 2.5 实战 MongoDB 数据库
      • 二、NoSQL 排名第一 MongoDB
        • 移动互联网架构
        • MongoDB 简介
        • MongoDB 优点
        • 5. MongoDB 版本特性
      • 二、安装 MongoDB 数据库
        • 下载 MongoDB4.4
        • 3. Linux 安装 MongoDB4.0
        • 可视化管理工具
        • MongoDB 操作命令
      • 四、Spring Data 实战 MongoDB 数据库
        • Spring Data 2.5 MongoDB 新特性
        • Repository 仓储层代码
      • 五、本节课高级面试题
        • 高级面试题
      • 五、本节课高级面试题
        • 高级面试题

Spring Boot2.5 使用 Spring Data

Spring Boot2.5 使用 Spring Data链接 MySQL 数据库

内容简介:
一、Spring Data 简化 MySQL 数据访问
二、Spring Boot 2.5 实战 MySQL 数据库
三、Demo 一、Spring Data 简化 MySQL 数据访问

Spring Data 新特性

Spring 在 Spring boot 之后再应用开发、微服务架构以及数据链接上都提供了专门
的框架,大大简化开发工作,提升开发的效率。
Spring Data for MySQL 有很多技术可以用,比如 JDBC、JDBC Template、RM
框架或者 Hibernate My Business。
Spring Data 会整合框架,简化整个框架的配置。这里面有个非常重要的 Spring
Data 的子集叫 JPA,实际就是加上了一个持久化的 API,它其中有一块针对 MySQL 封
装底层的 Hibernate,也可以切换成 My Business。

Spring Data 新特性

1)快速数据访问框架,提供统一的编程模型
2)强大的 repository 仓储和自定义对象映射 ORM 抽象
3)从 repository 方法名称派生动态查询接口
4)实现 Domain 域基类提供基本属性
5)支持透明审计日志(创建,最后更改)
6)可以自定义 repository 代码
7)通过 JavaConfig 和自定义 XML 命名空间轻松实现 Spring 集成
8)与 Spring MVC 控制器的高级集成
9)跨库持久性的实验支持
Spring Data 针对各个数据源提供了统一的编程模型,其中有一个设计模式叫仓储
模式,仓储模式在数据访问层又做了一层封装,主要针对各种不同的数据库提供统一的
操作,有些默认接口直接生成不用再进行配置了。这个操作也可以结合其他的分层模型
来进行整合。

Spring Data 架构

Spring Data 主要是做各种不同的数据源的对接工作。有传统的关系型数据库也有
非关系型数据库等等都可以和它进行集成。

Spring Boot2.5 使用 Spring Data_第1张图片

Spring Data 架构主要分成了关系型数据库和关系型数据库。JPA 底层使用 JDBC。
本次主要对关系型据库的一系列操作,后面对于访问 Redis 以及 MongoDB 后续课
程也有对应的实战案例。

Spring Data 核心模块

1)Spring Data Commons - 支持每个 Spring Data 模块的 Core Spring 概念。
2)Spring Data JDBC - 对 JDBC 的 Spring Data 存储库支持。
3)Spring Data JDBC Ext - 支持标准 JDBC 的数据库特定扩展,包括对 Oracle
RAC 快速连接故障转移的支持,AQ JMS 支持以及对使用高级数据类型的支持。
4)Spring Data JPA - JPA 的 Spring Data 存储库支持。
5)Spring Data KeyValue - 基于映射的存储库和 SPI,可轻松构建用于键值存储
的 Spring Data 模块。

6)Spring Data LDAP - 对 Spring LDAP 的 Spring Data 存储库支持。
7)Spring Data MongoDB - 基于 Spring 的对象文档支持和 MongoDB 的存储库。
8)Spring Data Redis - 从 Spring 应用程序轻松配置和访问 Redis。
9)Spring Data REST - 将Spring Data存储库导出为超媒体驱动的RESTful资源。
10)Spring Data Apache Cassandra - 轻松配置和访问 Apache Cassandra 或大
规模,高可用性。
11)Spring Data Apache Geode - 轻松配置和访问 Apache Geode。
12)Spring Data Apache Solr - 为面向搜索的 Spring 应用程序轻松配置和访问
Apache Solr。
13)Spring Data Pivotal GemFire - 轻松配置和访问 Pivotal GemFire。

Spring Boot2.5 实战 MySQL

1)Spring JDBC and JdbcTemplate
2)Spring Data JPA and Hibernate framework
3)Spring Data 简化连接不同的数据库
4)使用 Spring Data JPA 框架连接 MySQL
5)当然也可以使用原始的 JDBC
6)默认底层使用 Hibernate 框架
7)支持 Repository 仓储模式
8)引入最重要的 2 个包
9)spring-boot-starter-data-jpa
10)mysql-connector-java

JPA 默认一个 RM 框架叫 Hibernate 框架。我们在对接的时候,需要大家去引几个
包。作为 Spring boot 严格来说是有个傻瓜式编程,要简化配置。但是我们手动引入一
个叫 JDBC 的包,然后再去配置数据库链接参数,数据库地址以及用户密码这些参数还
是要自己设置。
对于初始化依赖,可以使用 starter-data-jpa 这样的一个依赖包。这里面还涉及到
JdbcTemplate,这是 Spring 提供了一个非常重要的数据库操作的接口。

Spring Data JPA 框架

  • Spring Data JPA 简化数据访问层的开发工作
  • 基于 Spring 和 JPA 构建存储库的完美支持
  • 支持 Querydsl 谓词,从而支持类型安全的 JPA 查询
  • Domain 类的透明审核
  • 分页支持,动态查询执行,集成自定义数据访问代码的能力
  • 在引导时验证@Query 带注释的查询
  • 支持基于 XML 的实体映射
  • 引入@EnableJpaRepositories,基于 JavaConfig 的存储库配置

在定义接口的时候,特殊的查询可能需要编写一些特殊的语句,下面来看一下具体
的一个实现。

Spring Boot2.5 使用 Spring Data_第2张图片

加入数据库访问链接,这里面有个 spring data starter 的 JPA。加进来以后我们从
数据库底层手动引一下 MySQL-connector,里面 devtools 主要做自动化调试,方便进
行程序的开发配置。改完代码以后不用重启,就会自动重新加载变化的数据配置文件。
Database platform 在这里面指的是 hibernate。Model 在这里面指的是实体,和数
据库直接对应。相比之前 Spring data 对应的数据源要配置一下。代码中有几个重要的
参数分别是 url、username 以及 password。
Spring Data Jpa 是链接 MySQL 数据库重要的组件,在配置的时候要注意底层的
MySQL connection。

Spring Boot2.5 使用 Spring Data_第3张图片

配置 MySQL 参数:

Spring Boot2.5 使用 Spring Data_第4张图片

POM 配置:

Spring Boot2.5 使用 Spring Data_第5张图片

仓储 Repository 泛型接口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DzmkbGDF-1667462344320)(https://s2.loli.net/2022/11/03/uaqViGmIDdo7lFA.png)]

Java 高级面试题

  1. Spring Data JPA CRUD 增刪改查 REST API
  2. 如何基于 Spring Boot+Spring Data 实现登录注册?
  3. Spring Data 为什么只使用接口声明就可以访问数据库?
  4. 默认 Spring Data JPA 使用 Hibernate,如何配置连接池?

Spring Boot 2.5 实战 MongoDB 数据库与面试题

内容简介:
一、Spring Boot 2.5 实战 MongoDB 数据库
二、NoSQL 排名第一 MongoDB
三、安装 MongoDB 数据库
四、Spring Data 实战 MongoDB 数据库
五、本节课高级面试题

一、Spring Boot 2.5 实战 MongoDB 数据库

二、NoSQL 排名第一 MongoDB

  1. 移动互联网架构

Spring Boot2.5 使用 Spring Data_第6张图片

  1. MongoDB 简介

MongoDB 是文档型数据库,较灵活,容易做集群搭建,在互联网公司运用广泛。
1)NoSQL 排名第一,BAT 互联网公司必备
2)分布式数据库
3)由 C++语言编写,特点是高性能、易部署、易使用、存储数据非常方便
4)旨在为 Web 应用提供可扩展的高性能数据存储解决方案
5)MongoDB 由 10gen 团队所开发,于 2009 年 2 月首度推出
6)MongoDB 开源、跨平台
7)支持 Windows、Linux、OS X 和 Solaris 系统
8)MongoDB 最新版本为 4.0,支持跨文档事务

  1. MongoDB 优点

1)灵活的数据模型
2)便于横向拓展
3)自动分片存储
4)支持分布式查询
5)集成内存缓存
6)高性能高并发
4. #### MongoDB 的典型行业案例

Spring Boot2.5 使用 Spring Data_第7张图片

5. MongoDB 版本特性

Spring Boot2.5 使用 Spring Data_第8张图片

推荐大家用 3.0 以后的版本,因为 3.0 以后默认 Wiredtiger,性能、稳定性更强大,
4.0 以后基本上也支持分布式事务 Transaction,包括分片集群、复制集群事务,其他并
行异步复制等,提升了针对大容量数据库迁移的优化。

二、安装 MongoDB 数据库

  1. 下载 MongoDB4.4

Spring Boot2.5 使用 Spring Data_第9张图片

官方下载,windows 可以直接下,Linux 直接用命令,安装后启动 MongoDB 服务。
2. #### 安装最新 MongoDB

Spring Boot2.5 使用 Spring Data_第10张图片

3. Linux 安装 MongoDB4.0

Spring Boot2.5 使用 Spring Data_第11张图片

可视化管理工具

 Robomongo
 Robo 3T
 Compass

MongoDB 操作命令

 > show dbs
 admin 0.000GB
 config 0.000GB • local 0.000GB
 > show users
 > show collections
 > use Alibaba
 switched to db alibaba
 > db.users.insert({“name”:“Java”})  WriteResult({ “nInserted” : 1 })  > db.users.insert({“name”:“mongo”,“age”:18})  WriteResult({ “nInserted” : 1 })  > db.users.find() • { “_id” :ObjectId(“604ca8c13bfab2e14d4927d4”), “name” : “Java” }  { “_id” : ObjectId(“604ca8e33bfab2e14d4927d5”), “name” : “mongo”, “age” :
18 }

 > db.users.insert({“name”:“frank”,“password”:“1234”,“age”:18})

 WriteResult({ “nInserted” : 1 }) • > db.users.find()  { “_id” : ObjectId(“604ca8c13bfab2e14d4927d4”), “name” : “Java” } _

 { “_id” : ObjectId(“604ca8e33bfab2e14d4927d5”), “name” : “mongo”, “age”
18 }

 { “_id” : ObjectId(“604ca9623bfab2e14d4927d6”), “name” : “frank”, “passwor
d” : “1234”, “age” : 18 }

四、Spring Data 实战 MongoDB 数据库

Spring Data 2.5 MongoDB 新特性

1)简化 Java 的 MongoDB 数据库开发 API
2)提供一致的基于 Spring 的编程模型
3)Spring configuration 支持@Configuration classes or an XML namespace
4)方便编写 Repository 仓储模式的 DAO 层代码
5)自动实现 Repository interface 的 CRUD 常用操作
6)自动进行 POJO 和 MongoDB 文档数据的映射转换, Spring’s Conversion
Service
7)可以自定义扩展方法
8)MongoTemplate helper class 提升 MongoDB 开发效率
9)Low-level mapping using MongoReader/MongoWriter abstractions
10)Java based Query, Criteria, and Update DSLs
11)Log4j log appender
12)GeoSpatial 集成

13)Map-Reduce 集成
14)JMX administration and monitoring
15)CDI support for repositories
16)GridFS 支持

Repository 仓储层代码

public interface BlogRepository extends MongoRepository {
public Blog findById(objectId id);
public void delete (objectId id);
public List findAll();
}
Repository 仓储层代码,实际大大的简化了整个数据库编程,但是底层基础还是需要
大家去使用,作为应用开发人员,使用接口越方便越简单效率越高,但是底层实现需要
我们花时间去研究学习。

五、本节课高级面试题

高级面试题

  1. Spring Data for MongoDB 映射机制
  2. 官方驱动是什么
  3. MongoDB 存储什么数据?NoSQL,面向文档 JSON
  4. MongoDB 优缺点
  5. MongoDB 几大存储引擎
  6. 数据复制的过程
  7. 索引类型
  8. 性能优化
  9. 性能监控
  10. GEO 索引算法

库编程,但是底层基础还是需要
大家去使用,作为应用开发人员,使用接口越方便越简单效率越高,但是底层实现需要
我们花时间去研究学习。

五、本节课高级面试题

高级面试题

  1. Spring Data for MongoDB 映射机制
  2. 官方驱动是什么
  3. MongoDB 存储什么数据?NoSQL,面向文档 JSON
  4. MongoDB 优缺点
  5. MongoDB 几大存储引擎
  6. 数据复制的过程
  7. 索引类型
  8. 性能优化
  9. 性能监控
  10. GEO 索引算法

你可能感兴趣的:(springboot,Springboot实战,spring,spring,boot,java)