Spring学习记录...

总感觉基础不够扎实,只知其然而不知其所以然,这篇博客就记录一下这段时间所复习的一些知识吧…

1. SpringMVC篇:

1.1 请求与响应:

请求:
  1. 普通参数:请求参数名与形参名不同 —> @requestParam(“请求参数名”)
  2. POJO参数
  3. 嵌套POJO参数:
    • 复杂属性.属性名
      请求参数名与实体类中的属性名要一一对应
//POJO:
public class User{
	...
	private Address address;
}
class Address{
	private String city;
	private String town;
}
//前端:
...?name=itcast&age=15&address.city=beijing&address.town=beijing
//后端
public String pojoContainPOJOParam(User user){}
  1. 数组参数:请求参数名都为相同的名字,形参名也需要对应上,会自动完成封装。
//前端传递的参数
...?likes=game&likes=sign&likes=ball
//后端
public String arrayParam(String[] likes){}
  1. 集合保存普通参数:请求参数名与形参集合对象名相同且请求参数为多个,需要 使用@RequestParam绑定参数关系

JSON格式数据的传递(重点)
  1. JSON数组
    • JSON格式:[“a”,“b”,“c”]
    • 在后端接数据时需要在形参类型前加上@RequestBody
    • @RequestBody —> 将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次
public String listParamForJson(@RequestBody List[] likes){}
  1. JSON对象(POJO)
    • JSON数据样例:
{
	"name":"itcast",
	"age":15,
	"address":{
		"city":"beijing",
		"town":"beijing"
	}
}
  1. JSON数组(POJO)
  2. 日期类型参数传递:
    • @DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
总结:
@RequestParam 与@RequestBody的区别
  1. 区别:
  • @RequestParam 用于接收 url 地址传参,表单传参【application/x-www-form-urlencoded】
  • @RequestBody 用于接收 json数据 【application/json】
  1. 应用:
  • 后期开发中,发送 json 格式数据为主,@RequestBody 的应用较广
  • 如果发送的是非 json 格式数据,选用@RequestParam 接收请求参数

响应:

1.@ResponseBody:设置当前控制器返回值作为响应体

1.2 REST风格

  1. REST 是一种资源描述风格
    • RESTful 是指根据 REST风格对资源进行访问
  2. 设置请求参数 —> @Get/Post/…Mapping(“/路径/ {形参名}”)
    • public 返回类型 get(@PathVariable 变量类型 形参名)

3. 总结

  1. @RequestBody —> 用于接收JSON格式数据
  2. @RequestParam —> 用于接收url地址传参或者表单传参
  3. @PathVariable —> 用于接收路径参数,使用 {参数名称} 描述路径参数

1.3 拦截器

  1. 异常处理器:
    • @RestControllerAdvice
      • 为Rest风格开发的控制器类做增强
    • @ExceptionHandler
      • 专用于异常处理的控制器方法上方
      • 设置指定异常的处理方案,功能等同于控制器方法,出现异常后终止原始控制器执行,并转入当前方法执行

MyBatisPlus

  1. 导入依赖
  2. 继承BaseMapper<泛型>

2.分页功能:

  1. 设置分页拦截器作为Spring管理的Bean
    在这里插入图片描述
  2. 执行分页查询
    在这里插入图片描述

3.DQL编程控制

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

常见注解:

  • @TableName:用来指定表名
  • @TableId:用来指定表中的主键字段信息
    • type = IdType.AUTO / Input / ASSIGN_ID
  • @ TableField:用来指定表中的普通字段信息
    • 成员变量名与数据库字段名不一致
    • 成员变量名以 is 开头,且是布尔值
    • 成员变量名与数据库关键字冲突
    • 成员变量名不是数据库字段
  • @TableLogic
    • 设置当前字段为逻辑删除标记字段
    • @TableLogic(value = “0”,delval = “1”)
  • @Version

推荐在配置文件中一键配置:

在这里插入图片描述

MP乐观锁

  1. 数据库表中添加锁标记字段(version)
  2. 实体类中添加对应字段,并设定当前字段为逻辑删除标记字段
  3. 配置乐观锁拦截器实现锁机制对应的动态SQL语句拼装
  4. 使用乐观锁机制在修改前必须先获取到对应数据的version才可以继续正常进行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值