tlias智能学习辅助系统-学习笔记Part02

YangeIT大约 19 分钟tlias智能学习辅助系统MysqlApifoxServletHTTPGETPOST

tlias智能学习辅助系统-学习笔记Part02

今日目标

  • 编写 SpringBoot 入门案例 ❤️ ✏️
  • 能够理解Http协议相关概念以及获取请求参数,响应数据 🍐 ✏️
  • 能够切换服务器运行Web Boot项目 ✏️ 🚀
  • 使用三层架构进行分层解耦 🍐
  • 在SpringBoot下集成Mybatis框架(XML/注解/动态sql)

1. SpringBoot 入门

SpringBoot定义

SpringBoot是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。Spring的官网open in new window,国内社区open in new window

  • Spring 程序缺点
    • 配置繁琐
    • 依赖设置繁琐
  • SpringBoot 程序优点
    • 自动配置
    • 起步依赖(简化依赖配置)
    • 辅助功能(内置服务器(tomcat),……)

需求:创建 Springboot 项目

1️⃣ 创建新模块,选择 Spring 初始化,并配置模块相关基础信息
image
image

需求:修改服务器端口

默认端口是:8080---修改为8848

修改服务器端口

YAML 是 JSON 的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代 application.properties

YAML 的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。

  1. 在 application.yml 中配置
server:
  port: 80

点击查看修改步骤open in new window👈

2. SpringBoot获得参数和数据响应

前言

本节,我们主要讲解,如何接收页面传递过来的请求数据

  • 接收普通类型参数传递
  • 接收json数据参数
  • 接收路径参数

请求参数获取实操

代码操作

简单参数 :在向服务器发起请求时,向服务器传递的是一些普通的请求数据。

参数格式:http://localhost:8848/users/simpleParam?name=韩立&age=188

路径上的参数名字和方法的形参必须一模一样,类型也要一致

操作步骤流程: 👇👇

操作步骤流程
操作步骤流程

响应数据实操

代码操作

SpringBoot工程,Controller中的方法返回值对象,自动转成了Json字符串

image
image

3. 三层架构分层解耦

三层架构分层解耦

三层架构就是为了符合高内聚,低耦合 思想,把各个功能模块划分为表现层 业务逻辑层 数据访问层 三层架构,各层之间采用接口相互访问,并通过对象模型的实体类作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致

三层架构
三层架构

Spring、SpringMVC、Mybatis等是框架

思考一下:如果表现层框架改了,请问其他2层需要修改吗?

  • 数据访问层:对数据库的CRUD基本操作,特有包名:mapper或者dao
  • 业务逻辑层:对业务逻辑进行封装,组合数据访问层层中基本功能,形成复杂的业务逻辑功能。例如 注册业务功能 ,我们会先调用 数据访问层selectByName() 方法判断该用户名是否存在,如果不存在再调用 数据访问层insert() 方法进行数据的添加操作。特有包名:service
  • 表现层/控制层:接收请求,封装数据,调用业务逻辑层,响应数据。特有包名:controller或者web

实操:根据三层架构的思想,创建对应的包和实现类

1.点击查看建包的步骤和解释open in new window 👈 👈

实操:根据三层架构的思想,给User用户模块,创建一个查询所有的接口

  1. 控制层 controller包下,的UserController类中,增加一个findAllUser()的方法
  2. 业务层service包下,创建UserService接口,定义一个findAllUser()的抽象方法,返回值是List<User>
  3. 业务层service包下,创建impl包,在impl包下创建UserServiceImpl实现类,实现UserService接口,并实现其未实现的方法,返回值是List<User>
  4. 持久层mapper包下,创建selectAll()方法,返回值是List<User>

点击查看详细步骤并且思考图中提出的问题open in new window 👈 👈

image
image

注意!!

如果你完成并理解上述2个实操 ,对于三层架构的作用和实践,你很到位哦!!!👍 接下来结合Spring的核心概念,让代码更加简洁吧!!!

提示:使用@Autowired @Service2个注解能使代码更加简洁哦!!

点击查看答案步骤提示open in new window建议自己先试试哦!!然后再点击看提示哦

4. SpringBoot下集成Mybatis框架(XML/注解/动态sql)

SpringBoot下集成Mybatis框架

MyBatis
MyBatis

MyBatis 是一个持久层框架,用于简化 Java 应用程序与关系型数据库的交互。它通过将 SQL 语句与 Java 代码进行映射,提供了一种方便且灵活的方式来访问和操作数据库

中文网open in new window

需求1:查询所有用户,输出在控制台可以先自己分析

点击查看详细步骤
  1. 在UserMapper接口中,创建selectAll方法,并且在方法上添上注解。点击查看图解open in new window

  2. 在test下的SpringbootdemoApplicationTests中添加一个test的测试方法。点击查看图解open in new window

  3. 在SpringbootdemoApplicationTests中自动注入UserMapper接口的代理对象,并在test测试方法中调用这个对象的selectAll方法,输出结果。点击查看图解open in new window

需求2:查询名字叫 陆雪琪的用户,输出在控制台

点击查看详细步骤
  1. 在UserMapper接口中,创建selectByName方法,并且在方法上添上注解。 点击查看图解open in new window

  2. 在test下的SpringbootdemoApplicationTests中添加一个test1的测试方法。点击查看图解open in new window

需求3:爱好中含有 "法术" 的用户,输出在控制台

点击查看详细步骤
  1. 在UserMapper接口中,创建selectByCondition方法,配上参数。点击查看图解open in new window

  2. 在test下的SpringbootdemoApplicationTests中添加一个test2的测试方法。点击查看图解open in new window

  3. 在resource下创建一个和UserMapper包名的同名多级文件夹 ,并且在文件夹下创建UserMapper.xml同名文件(后缀名不一样)。点击查看图解open in new window

  4. 然后再UserMapper.xml文件中,将下述代码复制到文件中。点击查看图解open in new window

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itcast.mapper.UserMapper">

    <select id="selectByCondition" resultType="com.itcast.domain.User">

    SELECT  * from user where hobby like concat('%',#{hobby},'%')

    </select>


</mapper>

测试效果:👇

测试效果
测试效果

需求4:完成了需求3后,根据下面的接口描述,完成该接口的代码书写

请求参数:

  • 接口作用:通过传入关键字,查询名字、爱好、描述、门派含有此关键字的用户列表
  • 接口地址:localhost:8848/users/queryByCondition
  • 请求方式:POST
  • 参数:name=关键字

响应结果:

点击查看详细步骤

点击查看1-2步骤图解open in new window

  1. 控制层,在UserController类中增加一个,queryByCondition的方法,参数为字符串name,返回值为Result,在方法中调用服务层对象的返回List<User>

  2. 服务层,在UserService接口创建queryByCondition的方法,并且在UserServiceImpl实现类中,调用UserMapper的代理对象,查询数据库,返回List<User>

  3. 持久层,考虑到语句较为复杂,Sql语句写在映射文件UserMapper.xml中,结合where和if标签做动态Sql。

  4. 打开Apifox软件,随意输入一些参数,如青云、南宫、法术、剑术等进行测试,观察返回值

点击查看3-4步骤图解open in new window

👉如果你完成了上述4个需求,恭喜你👍,掌握了SpringBoot下集成Mybatis框架基本操作,接下来可以做一个小项目巩固下了! 🎉

点击我开始学习项目吧!!