开发者学堂课程【基于STM32的端到端物联网全栈开发:后端服务开发(1)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/574/detail/7946
后端服务开发(1)
目录:
一、服务端的应用开发
二、后端常用开发语言
三、后端框架的认识
四、项目运行的逻辑流程
一、服务端的应用开发
后端的基本概念
1、在软体架构和程序设计领域,前端是软件系统中直接和用户交互的部分,而后端控制着软件的输出
2、前端通过 ajax 等技术向后端进行网络请求;后端收到请求后对数据库进行操作,返回给前端 JSON 数据;前端把相应数据展示在页面上
3、将软件分为前端和后端是一种将软件不同功能的部分相互分离的抽象
如图:
二、后端常用开发语言
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、基于框架,开发者可以更方便快速的实现相关功能,并且在性能上也有良好的保证
程场景的智能家居平台,基于以下框架进行开发:MySQL、Mybatis、SpringBoot
MySQL:后端中各种数据的存储需要设计和使用数据库,MySQL 是一种开放源代码的关系型数据库管理系统。Mybatis:在 Java 中操作 Mysq| 语句一般用到持久层框架 Mybatis;
SpringBoot:整合了常用框架 Mybatis+springmvc 等,省去了复杂的配置;
Maven:跨平台的项目管理工具。
如图:
Mysql 简介:
1、SQL 被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
2、MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
关系型数据库的典型概念:
数据库:数据的仓库
表:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式
行:每一行的数据
列:列用于规定数据格式
字段:数据的某个列
对 Mysql 数据库的操作:操作 Mysql 主要是对数据库、表操作;可以用 Navicat 可视化工具,也可以用命令行操作。
操作 Mysql 常用操作有:
1、对数据库和表进行操作:创建数据库,删除数据库,切换数据库,创建表。
对数据库记录(行)进行操作:对数据库表记录插入,更新,删除2、对数据库查询操作,主要是用来查询数据,不会对数据造成变化。
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、配置连接池
2、mapper 文件位置
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 文件的使用
1、BaseMapper 继承 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