springMvc用什么对象从后台向前台传递数据?
通过ModleMap对象调用put方法,把对象加入到里面,前台就可以通过el表达式取到
ModelMap里的数据怎么放到Session
可以在类上加@SessionAttributes注解,里面包含的字符串就是Session的key
什么是Mybatis
Mybatis是一个半自动的ORM(对象关系映射)框架,内部封装JDBC,开发只需关注SQL语句
Mybatis可以使用XML或注解来配置和映射原生信息,将POJO映射映射成数据库中的记录
#{}和${}的区别
#{}是预编译处理,${}是字符串替换
Mybatis在处理#{}时,会将SQL语句中的#{}替换为?号,调用PreparedStatement的set方法来赋值
Mybatis在处理${}时,就是把${}替换成标量的值。
并且#{}可以有效的防止SQL语句注入
mybatis半自动和hibernate全自动有什么区别
Hibertnate是全自动ORM映射框架,使用Hibernate查询关联对象或者关联集合对象时,可以根据
对象关系模型直接获取,所以Hibernate是全自动的。
而MBatis在查询关联对象或关联集合对象时,需要手动编写SQL语句来完成,所以它是半自动ORM
Myabtis实现一对一有几种方式,怎么操作?
有联合查询和嵌套查询。联合查询是几个表联合查询,只查询一次,通过在resultMap里的Conlltion节点
配置一堆多的类就可以完成,嵌套查询是先查一个表,根据这个表里的结果的外键id,再去另一个表
里面查询数据,也是通过配置colletion,但另一个表的查询通过select节点配置
SSM:
SpringIOC容器中常用的接口和具体的实体类
1.Bean Factory: SpringIOC容器的基本设置,是最低层的实现,面向框架本身的
2.ApplicationContext: Bean Factory的子接口,提供了更多的高级的特定,面向开发者的
3.ConfigurableApplicationContext: ApplicationContext的子接口,扩展除了close和refesh等关闭刷新容器的方法
4.ClassOPathXmlApplicationContext: 从class path的Xml配置文件中读取上下文,并生成上下文定义,应用程序上下文从程序环境变量中取得
5.FileSystemXmlApplicationContext: 由文件系统中的XML文件读取上下文
6.XMLweb Application Context: 由Web应用的XML配置文件读取上下文
Spring Bean的生命周期
1.默认情况下,ICO容器中的Bean的生命周期分为五个阶段:
1.调用构造器,或者是用过工厂的方式创建Bean对象
2.给bean对象的属性注入值
3.调用初始化方法,进行初始化,初始化方法是通过init-method来指定的
4.使用
5.ICO关闭时,销毁Bean对象
2.当加入了Bean的后置处理器时,IOC容器中的Bean的生命周期分为七个阶段:
1.调用构造器或者是通过工厂的方法创建Bean对象
2.给Bean对象的属性注入值
3.执行Bean后置处理器的PostProcessBeforelnitialization
4.调用初始化方法,进行初始化,初始化方法是通过init-method来指定的
5.执行Bean的后置处理器postProcessAfterlnitialization
6.使用
7.IoC容器关闭时,销毁Bean对象
SpringMVC里拦截器是如何定义,如何配置,拦截器中三个重要的方法
定义:有两种方法
1.实现handlerInterceptor接口
2.继承HandlerInterceptorAdapter
配置:
mvc:interceptors
SpringMvc的工作流程
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
Mybatis中#{}和KaTeX parse error:Expected ‘EOF‘, got ‘#‘ at pasition 11:{}的区别是什么? #{}是预编译处理,{}是字符串替换
Mybatis在处理时,会将SQL语句中的#替换为?号,调用PreparedStatement的set方法来赋值
Mybatis在处理时 其实就是{}替换成变量的值
简述Mybatis的单个参数,多个参数是如何传递参数及如何取值
传递单个参数(8个基本+String)取值时在#{}中可以任意指定,如果是对象类型,则必须指定对象的属性名来取值
传递多个参数 默认情况下 Mybatis会对多个参数进行封装Map.取值时在#{}可以使用 0 1 2 ...或者是param1 parma2..
MyBatis如何获取自动生成的主键值?
在标签中使用useGeneratedKeys和keyProperty两个属性来获取自动生成的主键值。
Spring Bean的作用域
Singleton:在SpringIOC容器中有且仅有一个,单例模式
Peototype:多例,每次调用Bean时,都会返会一个新的实例,每次就相当于new xx
request:每次HTTP请求都会创建一个新的BEan 该作用域适合于web的Spring WepApplicationContext环境
Seission:同一个HTTP Session共享一个BEan 不同的Session使用不同的BEan 该作用域仅适用于Web的Spring WepApplicaitonContext环境
MyBatis的两级缓存 以及缓存的查找顺序
默认开启一级缓存,SQL Session级别。
二级缓存时NameSpace级别的缓存 多个SQL Session可以共享
缓存的查找顺序: 二级缓存 一级缓存 数据库
Spring与Mybatis整合 主要整合的两个地方
SQL Session创建的问题,通过SQL sessionFactoryBean来配置用于创建SQL Session的信息
Mapper接口创建的问题,使用MapperScannerConfiguration批量为Mybatis的Mapper接口生成代理类实现类并将具体的对象交给Spring管理
Spring声明实事务中@Transaction常用的两种事务传播行为
REQUIRED:使用调用者的事务,如果调用者没有开启事务,则启动新的事务运行
REQUIRES_NEW:将调用者的事务挂起 开启新的事务运行
简述@RequestMapping注解的作用 可标注的位置 常用的属性
该注解的作用是用来完成请求 与 请求处理方法的映射
该注解可以标注在类上或者是方法上
常用的属性:
value: 默认属性, 用于指定映射的请求URL
method: 指定映射的请求方式
params: 指定映射的请求参数
headers: 指定映射的请求头信息
原文:https://www.cnblogs.com/lphblogs/p/13945013.html