目录
1、Mybatis 的含义、历史由来。ORM:对象关系映射【重点】
5、MyBatis 自定义查询结果映射(resultMap标签的使用)
7、Mybatis 中关联查询的配置,能够描述出1对1关系和1对多关系的关联查 询配置 使用标签处理
8、Mybatis 中集合查询的配置 使用标签处理集合类型属性的数据映射,处理1对多的关系
10、Mybaits 的动态SQL标签的作用以及使用(if,choose,set,where,trim,foreach)
3、掌握SpringMVC框架中DispatcherServlet 的作用
2、掌握 SSM 框架搭建需要哪些配置文件及其作用,能够写出配置文件 (web.xml、applicationContext.xml 和 springmvc.xml)中每一个配置的的作用。
MyBatis 框架
1、Mybatis 的含义、历史由来。ORM:对象关系映射【重点】
尤其注意前身是Apache的iBatis迭代而来,10年迁移到Google Code,13年迁移至Github。
是一款数据持久层的框架,半自动ORM实现,对 JDBC
进行了封装,不过将SQL的定义工作独立了出来交给用户实现,负责完成剩下的SQL解析,处理等工作 <--------这就是半自动的含义
而ORM指的是对象关系映射,回忆一下工程项目里面的Mapper
2、MyBatis 框架特点
暂且记住五个点:
1.是一个开源的优秀的数据持久层框架;
2.面向配置编程(需要配置文件);
3.SQL语句与代码分离,方便维护(Mapper.java和Mapper.xml的隔离);
4.良好的支持数据映射,结果处理方便(resulttype、resultmap等等);
5.支持动态SQL语句(用if/where等标签实现动态的SQL语句结合)。
3、MyBatis 执行SQL流程,三个核心类及其用法
加载文件(一般命名mybatis-config.xml),然后配置文件里面会对Factory进行build,获得一个SqlSesssion;这一部分就是在加载sql
然后找到mapper里面映射出来的SQL语句,执行,取回到数据库的数据,关闭SqlSession
4、Mybatis 带参数的查询以及查询结果映射
注意:在SQ配置中,获取参数值有两种写法:#{ } 和${ }
#{}叫预编译处理,mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement 的set方法来赋值。可以有效预防SQL注入的问题。 ${}就是字符串替换,字符串拼接参数,存在SQL注入问题,不太安全。所以一般都是用前者的
5、MyBatis 自定义查询结果映射(resultMap标签的使用)
6、Mybaits 增删改的SQL配置
在标签中加入useGeneratedKeys=“true” keyProperty=“id”属性,可以获取到数据库中 自增的主键id的值
7、Mybatis 中关联查询的配置,能够描述出1对1关系和1对多关系的关联查 询配置 使用标签处理
实体类型属性的数据映射,处理1对1的关系
8、Mybatis 中集合查询的配置 使用标签处理集合类型属性的数据映射,处理1对多的关系
9、Mybatis 的面向接口编程中接口定义的规则
10、Mybaits 的动态SQL标签的作用以及使用(if,choose,set,where,trim,foreach)
set就跟你往后面拼接字符串一样:
foreach是为了填充一个集合进去:
Spring 框架
1、Spring 框架的概念、目的、范围以及优点
记住两个点:1.控制反转IOC,面向切面AOP(前面的每一个实验都是在验证这些特点);2.轻量级的容器框架 (管理bean)
2、控制反转(IOC)和依赖注入(DI)的概念
(1)由 Spring 容器来负责控制对象以及对象之间的关系,而不是由程序代码直接控制。 此时控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转思想
(2)由 Spring 容器在运行期间动态地将某种依赖资源注入到对象之中,即通过 Spring 容器将Bean 赋值给另一个 Bean 的属性的过程,就叫做 Spring 的依赖注入 ,不用自己去用构造函数了了。
3、通过Spring配置文件将对象交由容器创建
id 属性是该bean在容器中的唯一标识
name 可以定义该bean在容器中的别名,可以指定多个
class 属性用于指定该bean的具体实现类
scope 属性是设定该bean的作用域,有两个值:singleton(单例)和prototype(原型)
介绍一下两种作用域:
- 如果一个bean被声明为单例的时候,在处理多次请求的时候在Spring容器里只实例化出一个bean,后续的请求都公用这个对象,这个对象会保存在一个map里面。
- 当有请求来的时候会先从缓存(map)里查看有没有,有的话直接使用这个对象,没有的话才实例化一个新的对象,所以这是个单例的。
- 但是对于原型(prototype)bean来说当每次请求来的时候直接实例化新的bean,没有缓存以及从缓存查的过程。
4、Spring 基于 XML的两种依赖注入方式
(1)setter 方式注入
(2)构造方法注入
5、Spring 基于注解的依赖注入
6、Spring AOP 概念
7、SpringAOP 中的术语概念
(1)切面是指封装横切到系统功能的类,包含通知和切点
(2)切点定义切面插入在哪些方法上,确定切面使用范围
(3)通知定义了切点处所要执行的程序代码以及执行时机
(4)目标对象是指通知所作用的目标业务类
(5)织入是将通知添加到目标类具体连接点上的过程
8、Spring AOP 的 XML配置
9、通知的5种类型以及使用的标签
10、使用注解的方式实现Spring AOP配置
注解的名字和配置文件的长的是一样的,就是多了个@
11、Spring 实现事务管理的三个核心接口
PlatformTransactionManager:平台事务管理器
TransactionDefinition:定义事务规则
TransactionStatus:事务状态
我在想是不是要把单词背下来,考的时候是看见中文写英文
12、Spring 事务管理中声明式事务和编程式事务的区别
13、基于注解的方式实现声明式事务的配置及其注解
声明式事务实现有两种方式:一种是基于 XML 的方式实现,另一种是基于注解的方式实现。 重点掌握基于注解方式的实现。
(1)在Spring配置文件中配置事务管理器并开启事务注解驱动
(2)在业务逻辑方法上加上注解@Transactional,该注解既能标注在方法上,也能标注在类 上,如果在类上和方法上都标注了该注解,那么方法上的事务属性会覆盖类上的事务属性。
SpringMVC 框架
1、SpringMVC 框架的概念
SpringMVC 是 Spring 提供的一个基于MVC设计模式的优秀Web开发框架。该框架的本质也 是基于Servlet 的,通过DispatcherServlet 处理所有用户请求。
2、SpringMVC 框架的工作流程,用文字进行总结
流程如下:1.用户在浏览器点击发送一个请求到Dispatcher Servlet;2.此时就会在后端寻找处理器,3.调用Controller中的逻辑去处理;4.Controller中的model就会到业务层Service进行处理;5.处理完后一般就是数据库得到数据了,返回到DispatcherServlert;6.然后处理视图映射, 7.View此时会得到model带来的数据,8.紧接着靠前端jsp等等在浏览器上面响应,展示结果
3、掌握SpringMVC框架中DispatcherServlet 的作用
4、掌握在SpringMVC框架中定义控制器的方法
要注意命名一般都是叫XXController,然后加上注解,给出一个RequestMapping(路径),里面的每一个方法都是在controller目录内的新创建路径,可以指定GET/Post方法
5、掌握前后台数据交互的方式
视图向控制器传参:
控制器向视图传参:
6、总结并掌握Spring MVC中常用的一些注解及其作用
下面给十大注解:
7、掌握SpringMVC中文件的上传使用及配置
8、SpringMVC 中拦截器的使用及配置
SSM 集成
1、Maven 的常用命令
2、掌握 SSM 框架搭建需要哪些配置文件及其作用,能够写出配置文件 (web.xml、applicationContext.xml 和 springmvc.xml)中每一个配置的的作用。
1.web.xml
web.xml是ssm项目当中最重要的一个配置文件,当服务启动时会首先加载web.xml这个文件,里面包括了对前端控制器、乱码等的配置
2.applicationContext.xml
applicationContext.xml的作用是为了给spring进行配置
3.Spring-mvc.xml
此配置文件用来配置视图解析器和配置注解驱动,静态资源过滤和扫描controller包,其中controller包中的类可以使用@Controller注解来标志自生是一个Controller,使用RequsetMapping来表示处理请求路径地址映射,此注解可以使用在类上或者方法上,其中使用在类上的话表示该类中所有的@RequsetMapping注解都是他的子路径
3、异常统一处理
两种方式:
(1)通过实现 HandlerExceptionResolver 接口,覆写 resolveException 方法来统一处理不同 异常,从而消除错误信息展示在用户页面。
(2)@ControllerAdvice 配合 @ExceptionHandler 实现全局异常处理,@ExceptionHandler 注 解只能标注在方法上