前言
巩固复习,夯实基础👍!
01.SpringMVC
1.1MVC设计模式
MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。
1.2每层作用
视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。
控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。
数据模型层(Model):模型对象拥有最多的处理任务,是应用程序的主体部分,它负责数据逻辑(业务规则)的处理和实现数据操作(即在数据库中存取数据)。
1.3MVC模式优缺点
优点
- 多视图共享一个模型,大大提高了代码的可重用性
- MVC 三个模块相互独立,松耦合架构
- 控制器提高了应用程序的灵活性和可配置性
- 有利于软件工程化管理
我们通过 MVC 设计模式最终可以打造出一个松耦合+高可重用性+高可适用性的完美架构。
缺点
- 原理复杂
- 增加了系统结构和实现的复杂性
- 视图对模型数据的低效率访问
1.4工作流程
- DispatcherServlet:接受到浏览器端发送的所有请求
- HandlerMapper处理器映射器:找到@requestMapping对应值
- HandlerAdapter处理器适配器:适配对应的方法调用执行
- modelAndView模型视图对象:方法的返回值
- viewResolver解析模型视图对象,得到view,返回给浏览器用户展示;
开发流程
- 导入pom依赖
- web.xml中添加核心类配置,DispatcherServlet,指向框架Springmvc.xml的配置文件
- 配置Springmvc.xml
- 配置驱动包扫描<context:component-scan base-package="com.javaxl.ssm"/> 重点:配置本地资源视图解析器
<!--3) ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- viewClass需要在pom中引入两个包:standard.jar and jstl.jar -->
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
添加静态文件映射
<mvc:resources location="/images/" mapping="/images/**"/>
④controller层,正常开发即可
要通过@controller标记当前类被spring所管理
写方法:@requestMapping
方法会有返回值:“bookList” --> /bookList.jsp
1.5、SpringMVC常用注解
- @controller
- @requestMapping
- @getMapping
- @putMapping
- @deleteMapping
- @postMapping
- @responseBody-返回json数据
- @requestBody-接受json数据
- @pathvariable
- @requestParam
1.6SpringMVC返回数据
转发
forword:/list
重定向
redirect:/list
02.Mybatis
2.1Mybatis是什么?
简
MyBatis是一个优秀的持久层框架
ORM
对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),用于实现面向对象编程语言里不同类型系统的数据之间的转换。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据库相互映射。
关联关系的配置
一对一:association javatype
一对多:Collection oftype
2.2mapper.xml配置的常用标签
2.3 #{...}与${...}传参的区别
#{...} 传递参数会自带引号
${...} 不会自带引号,所有存在sql注入的风险
例如
DELETE FROM t_user WHERE id = 1101
#{id} > id = '1101' or id is not null
DELETE FROM t_user WHERE id = ''1101' or id is not null '
注:运行就会报错,这样便不会删除
${id} > id = '1101' or id is not null
DELETE FROM t_user WHERE id = '1101' or id is not null