2-SSM框架篇-3

简介: 本文详解SpringMVC核心机制:含11步标准执行流程、常用注解(@RequestMapping、@RequestBody等)及MyBatis关键知识点——#{}与${}区别、主键获取方式、字段名不一致的3种解决方案,助力Java Web开发深入理解与高效实践。(239字)

11- SpringMVC的执行流程知道嘛

  1. 用户发送请求至前端控制器DispatcherServlet;
  2. DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
  3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生 成)一并返回给DispatcherServlet;
  4. DispatcherServlet 调用 HandlerAdapter处理器适配器;
  5. HandlerAdapter 经过适配调用具体处理器(Handler,也叫后端控制器);
  6. Handler执行完成返回ModelAndView;
  7. HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
  9. ViewResolver解析后返回具体View;
  10. DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户

12- Spring MVC常用的注解有哪些?

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中 的所有响应请求的方法都是以该地址作为父路径。

@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

@Controller:控制器的注解,表示是表现层,不能用用别的注解代替

@RestController : 组合注解 @Conntroller + @ResponseBody

@GetMapping , @PostMapping , @PutMapping , @DeleteMapping ...

@PathVariable : 接收请求路径中的变量

@RequestParam : 接收请求参数

13- Mybatis #{}和${}的区别

#{}是占位符,预编译处理;${}是拼接符,字符串替换,没有预编译处理。

Mybatis在处理#{}时,#{}传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用 PreparedStatement的set方法来赋值。

#{} 可以有效的防止SQL注入,提高系统安全性;${} 不能防止SQL 注入

#{} 的变量替换是在数据库系统中; ${} 的变量替换是在 数据库系统外

14- Mybatis 如何获取生成的主键

我知道的有二种方式

  1. 在insert标签上, 使用useGeneratedKeys="true"keyProperty="userId"
  2. 在insert表内部, 使用 selectKey标签 , 里面使用select last_insert_id()查询生成的ID返回

15- 当实体类中的属性名和表中的字段名不一样 ,怎么办

第1种: 通过在查询的SQL语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。

第2种: 通过 ResultMap来映射字段名和实体类属性名

目录
相关文章
|
2月前
|
存储 缓存 NoSQL
4-Redis篇-1
本文详解Redis在项目中的三大应用:热点缓存、业务数据存储(如验证码、排行榜)及分布式锁;涵盖5种基础数据类型、RDB/AOF双持久化机制、惰性+定期混合过期策略,以及8种内存淘汰策略。
172 19
|
SQL 算法 前端开发
技术分享-动态脱敏
数据脱敏(Data Masking),又称数据混淆、数据漂白、数据去隐私化。用虚假的数据掩饰真实数据,以达到防止数据泄漏的目的。
1170 21
|
2月前
|
缓存 NoSQL 关系型数据库
4-Redis篇-3
Redis与Memcached在数据结构、集群支持及持久化上差异显著;内存满时Redis可淘汰或报错;与MySQL一致性可通过删缓存+双写、MQ异步、过期策略等方案分级保障;缓存穿透用布隆过滤器,击穿靠预热、永不过期或加锁限流。(239字)
185 8
|
2月前
|
SQL 存储 关系型数据库
3-MySQL篇-3
本文详解MySQL索引核心概念:回表查询(先查索引再查主键)、覆盖索引(索引含所有查询字段,避免回表)、左前缀原则(联合索引最左匹配);并列举索引失效场景及建索引最佳实践。
143 0
|
2月前
|
Java 应用服务中间件 Maven
5-微服务篇-1
本文详解SpringBoot核心机制:①自动装配原理——通过@SpringBootApplication→@EnableAutoConfiguration→AutoConfigurationImportSelector→spring.factories加载条件化配置类;②启动流程三阶段:初始化、上下文创建、自动配置;③常用起步依赖、配置文件类型(properties/YAML)及加载优先级;④四种运行方式。
261 23
|
2月前
|
SQL 存储 缓存
3-MySQL篇-4
本文详解MySQL性能优化三大维度:设计上选合适引擎(InnoDB/MyISAM)、字段类型与范式;功能上优化索引、缓存、分库分表;架构上主从复制、读写分离。另涵盖超大分页优化、慢查询定位及EXPLAIN执行分析方法。(239字)
136 2
3-MySQL篇-4
|
2月前
|
XML 安全 Java
2-SSM框架篇-1
本文详解Spring核心概念:IOC(控制反转)与DI(依赖注入),介绍三种DI方式(构造器、Setter、接口注入),五种Bean作用域(singleton、prototype等),单例Bean线程安全性分析,以及byName、byType等自动装配方式。(239字)
134 1
|
2月前
|
存储 关系型数据库 MySQL
3-MySQL篇-2
本文详解MySQL索引核心知识:涵盖单列索引(普通、唯一、主键、全文)、组合索引(含左前缀原则)及空间索引;剖析B+树等底层结构,对比MyISAM(非聚簇)与InnoDB(聚簇)存储引擎差异;并说明非主键索引的回表查询机制。
149 2
|
2月前
|
存储 前端开发 Java
1-Java基础篇-6
本文详解JVM核心机制:运行时数据区(程序计数器、虚拟机栈、本地方法栈、堆、方法区)、堆栈区别、类加载器体系(启动/扩展/系统/自定义)及双亲委派模型,并介绍Java 8新特性(Stream流常用操作filter/map/sorted等、Lambda、Optional等)。
121 1
|
2月前
|
SQL XML Java
2-SSM框架篇-4
本文详解MyBatis多表查询(关联/集合映射)、动态SQL(9种标签及OGNL执行原理)、延迟加载(association/collection支持)、批量插入(foreach用法)及主键返回机制,涵盖核心开发实践要点。(239字)
170 2