后端服务开发(1) | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习 后端服务开发(1)

开发者学堂课程【基于STM32的端到端物联网全栈开发后端服务开发(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/574/detail/7946


后端服务开发(1)


目录:

一、服务端的应用开发

二、后端常用开发语言

三、后端框架的认识

四、项目运行的逻辑流程


一、服务端的应用开发

后端的基本概念

1在软体架构和程序设计领域,前端是软件系统中直接和用户交互的部分,而后端控制着软件的输出

2、前端通过 ajax 等技术向后端进行网络请求;后端收到请求后对数据库进行操作,返回给前端 JSON 数据;前端把相应数据展示在页面上
3、将软件分为前端和后端是一种将软件不同功能的部分相互分离的抽象

如图:

image.png


image.png二、后端常用开发语言

Java
Java
是一门面向对象编程语言,不仅吸收了 C++语言的各种优点,还摒弃了 C++里难以理解的多继承,指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。

public class Test {
public static void
main(String[] args)
{ System.out.printIn("hello!!");
}}}

Mysql

MySQL 是最流行的关系型数据库管理系统,操作数据库 MySQL 使用标准的 SQL 数据语言形式。

insert into student

values(null,'aa',

','18988-10-2','......');

XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,它非常适合万维网传输。

George

John

Don't forget the

meeting!


三、后端框架的认识

基于框架开发:
1、随着计算机技术的不断发展,针对后端相关部分的开发,涌现出了大量具有强大功能的相关框

2、基于框架,开发者可以更方便快速的实现相关功能,并且在性能上也有良好的保证

程场景的智能家居平台,基于以下框架进行开发:MySQLMybatisSpringBoot

MySQL:后端中各种数据的存储需要设计和使用数据库,MySQL 是一种开放源代码的关系型数据库管理系统。Mybatis:在 Java 中操作 Mysq| 语句一般用到持久层框架 Mybatis;
SpringBoot
:整合了常用框架 Mybatis+springmvc 等,省去了复杂的配置;
Maven:跨平台的项目管理工具。

如图:

Mysql 简介:

1SQL 被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
2、MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

关系型数据库的典型概念:
数据库:数据的仓库
:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式

:每一行的数据
:列用于规定数据格式
字段:数据的某个列

Mysql 数据库的操作:操作 Mysql 主要是对数据库、表操作;可以用 Navicat 可视化工具,也可以用命令行操作。

操作 Mysql 常用操作有:
1
、对数据库和表进行操作:创建数据库,删除数据库,切换数据库,创建表。

对数据库记录()进行操作:对数据库表记录插入,更新,删除2、对数据库查询操作,主要是用来查询数据,不会对数据造成变化。

image.png

MyBatis 简介
支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis 可以对配置和原生 Map 使用简单的 XML 或注解,将接口和 Java POJOs(Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录.
MyBatis 优点:
简单易学:本身就很小且简单
没有任何第三方依赖,最简单安装只要两个 jar 文件+配置几个 sql 映射文件,易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现

MyBatis 功能架构:

API 接口层
提供给外部使用的接口 API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理

数据处理层:

负责具体的 SQL 查找、SQL 解析、SQL 执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑

Springboot 介绍

Springboot 解决的问题
以往采用 SpringMVC+Spring+Mybatis 框架进行开发时,需搭建和整合三大框架,要做很多工作,比如配置web.xml,配置 Spring,配置 Mybatis,并将它们整合在一起等,而 Spring boot 框架对此开发过程进行了革命性的颠覆,抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化开发过程。
Springboot
的特点:

1、可以完全不使用 xml 配置2、内嵌 servlet 容器,降低了对环境的要求,可用命令直接执行项目

3、提供了 starter POM,能够非常方便的进行包管理

4、对主流框架无配置集成。

Maven 介绍

主要作用是统一开发规范与工具以及统一管理 jar
idea 配置好 maven 以后只需要在项目的 pom.xml 文件中加入依赖。

例:

<!--https://mvnrepository.com/artifact/tk.mybatis/mapper>
<dependency>
<groupld>tk.mybatis</groupld>
<artifactld>mapper</artifactld>
<version>4.1.5</version>
</dependency>

Maven 从远程仓库中下载 jar 包至 Idea 配置的本机仓库地址中 IDEA 自动携带 Maven,可在 idea sttings 中查看配置的 maven 本地仓库

Maven 工程配置。

打包方式:jar 父工程:spring-boot-starter-parent,是 SpringBoot 的父依赖,当前项目就是 SpringBoot 项目

依赖关系:mybatis-spring-boot-starter:引入 Mybatis 框架,方便对数据库的操作。

mapper-spring-boot-starter:基于 Mybatis 的增强类,进一步简化对数据库的操作。
spring-boot-starter-jdbc:连接数据库

spring-boot-starter-web:默认使用嵌套式的 Tomcat 作为 Web 容器对外提供 HTTP 服务。
mysql-connector-java:是 MySQL JDBC驱动包

HikariCP:数据库连接池:负责分配、管理和释放数据库连接

应用配置文件。

路径:src/main/resources/application.properties 主要配置了数据库等相关操作

1、配置连接池

2mapper 文件位置

3、前后端交互的端口号

4、数据库 url,用户名、密码

使用 Navicat 建表

1、使用 Navicat 建立 MySQL 数据库

2、建表 test_model
3
、插入一条测试数据如下:
insert into `test_model`(`id`,`name`,`age`,`modify_time`,`create_ time`)

values(1,‘李四’,18,2019-03-04 09:52:09',2019-03-04 09:52:11')

创建 Java :TestModel

和新建数据表结构一一对应 id,name,age,miodifyTime,create Time
Mapper
文件的使用

1BaseMapper 继承 Mapper
2
TestMapper 继承 BaseMapper
3
、在 TestMapper.xml 中映射 TestMapper 中方法,此例为空(用到的方法已被封装好了)


四、项目运行的逻辑流程

打开项目:读取 Maven 配置文件,下载依赖 jar
启动 main()入口(DeviceAdminApplication.java

读取 application.properties 文件,配置数据库参数                    
读取 mapper 文件,定义数据库访问接口,映射 SQL 语句

Basemapper.java

Testmapper.java

Testmapper.xml

TestModule java
TestController.java

通过 Controller 类处理"hello"路由请求,操作数据库返回

mvbatis-spring-boot-starter

mapper-spring-boot-starter

spring-boot-starter-jdbc

spring-boot-starter-web

mvsal-connector-java

HikariCP

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
弹性计算 监控 负载均衡
|
6天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
4天前
|
Web App开发 存储 JavaScript
深入浅出Node.js后端开发
【10月更文挑战第31天】本文将引导你进入Node.js的奇妙世界,探索其如何革新后端开发。通过浅显易懂的语言和实际代码示例,我们将一起学习Node.js的核心概念、搭建开发环境,以及实现一个简单但完整的Web应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇通往高效后端开发的大门。
|
2天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
2天前
|
存储 关系型数据库 Java
探索后端开发:从基础到进阶
【10月更文挑战第33天】在这篇文章中,我们将深入探讨后端开发的各个方面,包括基本概念、关键技术和最佳实践。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和启示。我们将通过代码示例来展示一些常见任务的实现方法,并分享一些实用的技巧和策略,帮助你提高后端开发的效率和质量。无论你是想学习新的编程语言还是想了解最新的后端技术趋势,这篇文章都会为你提供有益的指导和灵感。让我们一起开启后端开发的探索之旅吧!
|
3天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
22 2
|
4天前
|
存储 JavaScript 前端开发
探索后端开发:从基础到进阶的旅程
【10月更文挑战第31天】本篇文章旨在通过浅显易懂的语言,带领读者了解后端开发的奥秘。我们将一起探讨后端开发的核心概念、常用技术栈,以及如何通过实践不断提升自己的后端技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供一个清晰的学习路径和实用的建议。让我们一起踏上这段探索后端世界的旅程吧!
14 1
|
5天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第30天】本文将通过一个Node.js的简单示例,引导你进入Node.js的世界。我们将从基础概念讲起,然后一步步深入到代码实现,最后总结Node.js在后端开发中的优势和应用场景。无论你是前端开发者还是后端新手,这篇文章都将为你打开一扇了解Node.js的大门。
16 2
|
2天前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
10 0
|
2天前
|
存储 Java 关系型数据库
探索后端开发:从基础到进阶的旅程
【10月更文挑战第33天】在这篇文章中,我们将一起踏上一段激动人心的旅程,深入探索后端开发的奥秘。我们将从最基本的概念开始,逐步深入,直到能够理解并应用高级后端技术。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的见解和知识。让我们一起开始这段旅程吧!