搭建3层架构实战 MySQL(一)|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习搭建3层架构实战 MySQL(一)

开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课搭建3层架构实战 MySQL(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/903/detail/14340


搭建3层架构实战 MySQL(一)


目录:

一、三层架构(前后段分离示意图)

使用 Spring Data 简化 MySQL 数据访问

Spring Data 数据框架

SpringBoot2.6实战 MySQL 数据库

五、 实操代码展示

 

前言:

前后端分离主要考虑的是业务规模,业务规模主要包括复杂度,高并发等等。

 

一、三层架构(前后段分离示意图)

三层架构介绍:

架构就和我们平常穿衣服样,适合自己的才是最好的,图中的业务逻辑层有些许瑕疵,这跟英文翻译有点关系;严格来讲的话,接口层,业务逻辑层,数据访问层,每一层都有自己的职责,这与计算机编码规范相关。

学员们可以提前装好 mysql,MongoDB 等软件;当今,我们做 JAVA 开发 spring 为我们提供了 springdata 来优化开发流程。

如:体现在用户登录的增删改查,评论的增删改查等等;便于我们与数据库进行数据交互。

image.png

 

二,使用 Spring Data 简化 MySQL 数据访问

Spring Data 新特性

1.快速数据访问框架,提供统一的编程模型

2.强大的 repository 仓储和自定义对象映射 ORM 抽象

3.从 repository 方法名称派生动态查询接口

4.实现 Domain 域基类提供基本属性

5.支持透明审计日志(创建,最后更改)

6.可以自定义 repository 代码

7.通过 JavaConfig 和自定义 XML 命名空间轻松实现

Spring 集成

8.与 Spring MVC 控制器的高级集成

9.跨库持久性的实验支持

Spring Data 架构示意图;

image.png

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快速连

接故障转移的支持,AQJMS 支持以及对使用高级数据类型的支持

4. Spring Data JPA - JPA 的 Spring Data 存储库支持。

5. Spring Data KeyValue -基于映射的存储库和 SPI,可轻松构建用于键值存储的Spring

Data 模块。

6. Spring Data LDAP -对 Spring LDA P 的 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

MySQL 数据库设计表:

image.png 

 

三,Spring Data(2.6)实战 MySQL

1.Spring JDBC and JdbcTem plate

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

注意:第十个依赖(mysql-connector-java)非常的重要

 

四,Spring Data JPA 框架

Spring Data JPA 简化数据访问层的开发工作

基 于 Spring 和 JPA 构建存储库的完美支持

支持 Querydsl 谓词,从而支持类型安全的JPA查询.Domain 类的透明审核

分页支持,动态查询执行,集成自定义数据访问代码的能力

在引导时验证 @Query 带注释的查询

支持基于 XML 的实体映射

引入 @EnableJpaRepositories,基于 JavaConfig 的存储库配置。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
移动开发 JSON JavaScript
分享188个JS图片效果JS代码,总有一款适合你
分享188个JS图片效果JS代码,总有一款适合你
195 1
|
存储 前端开发 安全
GET 和 POST 请求:理解它们之间的区别和适用场景
GET 和 POST 请求:理解它们之间的区别和适用场景
|
机器学习/深度学习 算法 Python
LightGBM中的特征选择与重要性评估
LightGBM中的特征选择与重要性评估【2月更文挑战第1天】
2521 0
|
7月前
|
SQL 缓存 PHP
MBTI十六型人格职业性格测试源码完整版
MBTI十六型人格职业性格测试源码完整版
585 12
|
11月前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
1087 14
|
12月前
|
搜索推荐 Android开发 数据安全/隐私保护
安卓vs. iOS:两大操作系统的终极对决####
【10月更文挑战第17天】 本文将深入浅出地探讨安卓和iOS这两大智能手机操作系统的差异与优劣,通过对比它们的技术架构、用户体验、市场表现及未来发展趋势,为读者提供一个全面而客观的视角。无论你是技术爱好者还是普通消费者,都能从中获得有价值的信息。 ####
430 2
|
12月前
|
搜索推荐 机器人 数据处理
基于大语言模型的 FireRedTTS 语音合成系统
【10月更文挑战第3天】近年来,随着人工智能技术的发展,基于大语言模型的语音合成系统备受关注。FireRedTTS 系统由郭浩瀚等人提出,旨在满足多样化的语音合成需求。该系统分为数据处理、基础系统和下游应用三部分,通过高质量数据集和语义感知架构生成高保真语音信号。其应用场景包括配音和聊天机器人,能够实现零样本语音克隆和可控类人语音合成,提供自然且个性化的交互体验。然而,系统仍面临计算资源和完全自然语音合成等方面的挑战。[了解更多](https://arxiv.org/abs/2409.03283)
977 3
|
网络协议
通俗易懂理解三次握手、四次挥手(TCP)
这篇文章用通俗的语言解释了TCP协议中的三次握手和四次挥手过程,通过比喻和详细的状态变化描述,帮助读者理解建立和断开连接的原理和原因。
通俗易懂理解三次握手、四次挥手(TCP)
|
供应链 Shell Python
经济订货量(Economic Order Quantity,简称EOQ)
经济订货量(Economic Order Quantity,简称EOQ)
|
Java 编译器 Linux
【多线程】锁策略、CAS、Synchronized
锁策略, cas 和 synchronized 优化过程