Ja基础及开发教程 1_第1页
Ja基础及开发教程 1_第2页
Ja基础及开发教程 1_第3页
Ja基础及开发教程 1_第4页
Ja基础及开发教程 1_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户管理实现项目2目录01初视RESTfulAPI设计规范02增删改查基本接口03SpringBoot分层分析04Mybatis入门2.1JavaWeb应用开发项目教程(SpringBoot+Mybatis)初识RESTfulAPI设计规范‌RESTfulAPI设计中的动词和宾语遵循“动词+宾语”的结构。比如:GET/articles这个命令,GET是动词,/articles是宾语。1.动词动词通常就是五种HTTP方法,根据HTTP规范,一律大写。GET:获取;POST:添加;PUT:修改;PATCH:部分修改;DELETE:删除。任务2.1

RESTfulAPI设计规范

2.宾语宾语就是API的URL,是HTTP动词作用的对象,书写规范如下:(1)不用大写字母,所有单词使用英文且小写;(2)连字符用中杠“-”而不用下杠“_”;(3)使用“/”表示层级关系,URL的层级不要过深,并且越靠前的层级越稳定;(4)结尾不要包含正斜杠分隔符“/”;(5)URL中不出现动词,用请求方式表示动作;(6)不要使用文件扩展名。任务2.1

RESTfulAPI设计规范

RESTful风格中的请求返回值一般包含如下字段:{ code:

Integer,//返回状态码 message:

String,//返回信息描述 data:

Object//返回数据}在Java中,Object是一种泛型类型,可以表示任意类型的对象。任务2.1

RESTfulAPI设计规范-返回值返回失败的响应JSON格式:{"code":401,"message":"用户没有权限","data":null}任务2.1

RESTfulAPI设计规范-返回值返回成功的响应JSON格式:{ "code":200, "message":"操作成功", "data":[{ "userName":"黄钟", "age":31}]}在HTTP协议中,状态码被广泛用于描述请求和响应的各种状态。1.200OK-[GET]:服务器成功返回客户端请求的数据;2.201CREATED-[POST/PUT/PATCH]:客户端添加或修改数据成功;3.202Accepted-[*]:服务器已经接受了客户端的请求,但尚未完成处理;4.204NOCONTENT-[DELETE]:服务器成功处理了请求,但没有返回任何内容;任务2.1

RESTfulAPI设计规范-HTTP状态码5.400INVALIDREQUEST-[POST/PUT/PATCH]:客户端发送的请求有误,服务器无法理解;6.401Unauthorized-[*]:客户端没有身份认证或身份认证无效;7.403Forbidden-[*]客户端没有足够的权限去访问请求的资源;8.404NOTFOUND-[*]:客户端请求的资源在服务器上不存在;9.500INTERNALSERVERERROR-[*]:服务器程序错误。任务2.1

RESTfulAPI设计规范-HTTP状态码请求参数是传递给服务器的数据,用于传递额外信息,常见的请求参数类型如下:1.路径参数(PathParameters)通常以{}的形式出现在URL中,如/users/{id},其中id就是一个路径参数。@GetMapping("/users/{userId}")publicReturnT<User>getUserByUrl(@PathVariable(value="userId")Integerid){System.out.println("获取主键userId="+id+"的用户数据。");returnReturnT.Success(users().get(id));}使用@PathVariable注解将路径参数绑定到方法参数上。任务2.1

RESTfulAPI设计规范-路径传参2.查询参数(QueryParameters)通常作为URL的一部分,以?开始,以key=value的形式出现,多个参数之间使用&连接,例如/users?id=1&name=John。@GetMapping("/user")publicReturnT<User>getUser(@RequestParam("userId")Integerid){System.out.println("获取主键userId="+id+"的用户数据。");returnReturnT.Success(users().get(id));}使用@RequestParam注解将查询参数绑定到方法参数上。任务2.1

RESTfulAPI设计规范-路径传参3.请求体参数(BodyParameters)是通过HTTP请求体中发送的数据,通常用于传递复杂结构的数据,如JSON、XML等。@PostMapping("/user")publicReturnT<User>insertUser(@RequestBodyUseruser){returnReturnT.Success(user);}使用@RequestBody注解将请求体数据绑定到方法参数上。任务2.1

RESTfulAPI设计规范-路径传参为了返回统一的数据格式,需要封装一个工具类,用来定义code(状态码)、message(提示信息)、data(返回数据)三个对象,返回给前端。新建utils包,包下新建ReturnCode.java和ReturnT.java文件。ReturnCode.java文件用于定义状态码,定义成功和失败两种状态码。ReturnT.java文件用于定义返回统一的数据。任务2.1

RESTfulAPI设计规范-工具类使用@GetMapping注解实现获取所有用户数据接口:@GetMapping("/users/list")//默认端口8080publicReturnT<List<User>>selectAllUsers(){System.out.println("获取所有用户数据。");returnReturnT.Success(users());}测试获取所有用户数据接口:GET:8080/api/users/list8080是IDEA默认使用端口。任务2.1初识RESTfulAPI设计规范-获取数据

2.2JavaWeb应用开发项目教程(SpringBoot+Mybatis)增删改查基本接口新建数据库mydata,新建用户表tb_user,并添加记录。任务2.1增删改查基本接口-新建库表

1.使用IDEA打开教材配套的demo案例,注意,demo下面可能会再包含demo文件夹。任务2.1增删改查基本接口-打开项目2.刷新Maven,自动导入依赖。1.获取所有用户数据GET:8082/api/users/list2.获取分页用户数据GET:8082/api/users/pageQuery参数pageNum:3pageSize:2 3.获取查询用户数据GET:8082/api/users/searchQuery参数condition:passwordcontent:2任务2.2增删改查基本接口-测试接口

4.获取用户记录总数GET:8082/api/users/count5.获取地址栏参数值的用户数据GET:8082/api/users/56.获取Query参数值的用户数据GET:8082/api/userQuery参数userId:157.添加用户数据POST:8082/api/userJSON参数{"userName":"henry","password":"Abc123!@","userAvatar":"../img/default.png"}任务2.2增删改查基本接口-测试接口

8.删除地址栏参数值的用户数据DELETE:8082/api/users/319.删除Query参数值的用户数据DELETE:8082/api/userQuery参数userId:3210.修改用户所有数据PUT:8082/api/userJSON参数{"id":2,"userName":"user","password":"Abc123!@","userAvatar":"

","createDate":"

"}任务2.2增删改查基本接口-测试接口

11.修改用户部分数据PATCH:8082/api/userJSON参数{"id":1,"userName":"","password":"","userAvatar":"../img/default2.png","createDate":"

"}2.3JavaWeb应用开发项目教程(SpringBoot+Mybatis)SpringBoot分层分析SpringBoot项目一般包含以下四层:controller层、service层、mapper层、entity层。1.代码的编写顺序eneity实体层→Mapper.xml定义SQL语句→mapper数据持久层→serviceImpl逻辑实现层→service业务接口层→controller控制层→html、js前端。2.代码的执行顺序html、js前端→controller控制层→service业务接口层→serviceImpl逻辑实现层→mapper数据持久层。一般而言,代码编写顺序通常自底向上,代码执行顺序通常自顶向下。任务2.3

SpringBoot分层分析1.主函数主函数main()是程序的入口点,位于DemoApplication.java文件中,通过调用SpringApplication.run()方法,初始化Spring环境和应用上下文。2.pop.xml文件Maven项目的核心配置文件,它以XML格式编写。该文件的主要作用是定义项目的结构、依赖关系和构建过程。3.application.yml文件用于配置数据连接、系统属性、环境变量、命令参数等信息。任务2.3

SpringBoot分层分析server:

port:8082spring:datasource:username:rootpassword:rooturl:jdbc:mysql://localhost:3306/mydata?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCdriver-class-name:com.mysql.cj.jdbc.Drivermybatis:mapper-locations:classpath:mapping/*Mapping.xml#放在resources的mapping文件夹中type-aliases-package:com.example.demo.entity任务2.3

SpringBoot分层分析-application.yml服务器端口号,默认端口号是8080MySQL的用户名和密码,如密码为数字,需要加上双引号,如"1234"MySQL端口号数据库名mapper接口层需要在扩展名为*Mapping.xml的文件中寻找对应的方法在MyBatis的XML映射文件中,就可以直接使用类的简单名称(而非全限定名)来引用这些类。4.entity实体层存放实体类,一般一张数据库表对应一个实体类,表字段和类属性基本保持一致。Getter、Setter方法,实现以字符串形式返回对象的方法。5.pop.xml文件定义SQL语句和映射关系。XML文件通常与mapper层的Java接口一起使用。XML文件存在于resources下的mapping文件夹下。6.mapper层数据持久层,也被称为dao层,用于与数据库交互。通过mapper层向数据库发送SQL语句,并将结果通过接口传给service层,对数据库进行操作。mapper接口中的方法名与XML映射文件中SQL语句的id一致,并且保持返回类型一致。任务2.3

SpringBoot分层分析7.service层数据服务层,主要负责业务逻辑的处理,包括接口层service和接口实现层serviceImpl。serviceImpl是service接口的实现类,负责具体的业务逻辑实现。封装service层的业务逻辑有利于业务逻辑的独立性和重复利用性。8.controller层控制层,负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。controller层是不允许直接操作数据库的,不能在controller里暴露service的业务逻辑,而应该直接转发service的业务处理结果。service层聚焦于业务逻辑的处理,参数检验最好放在controller层做。任务2.3

SpringBoot分层分析2.4JavaWeb应用开发项目教程(SpringBoot+Mybatis)Mybatis基本语法<selectid="findCatPopularity"resultType="com.example

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论