一、关于Mybatis?
1、是一种持久层框架。
2、支持定制化SQL,存储过程、以及高级映射。
3、避免了几乎所有的JDBC代码和手动设置参数以及获取结果参数集
4、可以使用简单的XML或注解来配置和映射原生类型接口和Java的pojo为数据库的记录
二、#{}和${}的区别?
#{}很大程度上防止SQL注入,sql在解析释时会加上“”,当成字符串来解析,(字段名上也会加上“”,所以字段名不能用)
无
法
防
止
s
q
l
注
入
,
{}无法防止sql注入,
无法防止sql注入,相当于字符串的替换,$一般用于数据库对象,比如数据库表名、字段名。
三、JDBC原生处理?
1、获取连接对象java.sql.connection
2、编写sql语句
3、获取预处理对象
4、给sql的占位符进行赋值并且处理
5、执行sql语句
6、处理结果集
7、释放资源。
四、Mybatis执行流程?
1、ReSources获取加载全局配置文件。
2、实例化SqlSessionFactoryBuilder构造器
3、解析配置文件流XMLConfigBuilder
4、获取所有的配置信息的Configuration的对象。
5、SqlSessionFactory实例化
6、TranSaction事物管理、创建Executor执行器
7、创建sqlSession(执行Mapper、通过反射加载类的信息)
8、执行CRUD
五、缓存
1、一级缓存默认是开启的,只在一次SqlSession中有效,也就是拿到连接到关闭连接之间区间段。
2、默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存,要启用二级缓存,需要
在SQL映射文件添加一行
六、Spring框架:使现有的技术更加容易使用,开源免费,轻量级,非入侵式的框架)
1、控制反转(IOC)、依赖注入(DI)
控制:谁来控制对象的创建、传统应用程序的对象是有程序本身控制创建的,使用Spring后,对象是由Spring创建的。
反转:程序本身不创建对象,而是变成被动接收对象。
依赖注入:利用Set方法来进行注入的,就是对属性进行赋值。
2、面向切面编程(IOC)
IOC是一种编程思想,由主动编程编程被动接收。不再改动程序,由Spring创建,管理,装配对象。只需要修改XML配置文件
七、在Spring中三种装配方式?
1、在XML中显示的装配
2、在java中显示的装配(在java类中加@Configuration作为配置类,来替代XML文件)
3、隐式的自动装配bean(根据属性名、属性类型、注解三种方式)
八、bean的作用域
1、默认情况单例 scope=“singleton” 加载spring配置文件时就会创建单例对象。
2、多实例 prototype 在调用getBean()时创建多个实例对象。
另外还有request/Session等…
九.bean的生命周期
1、构造器创建bean实例
2、给bean属性设值,其它bean的引用(set方法注入)
3、bean初始化方法
4、使用bean对象
5、容器关闭时,调用bean销毁方法
小结:在初始化前后可以调用前后置处理器方法,为了在初始化对象之前对存储信息进行修改,修改bean定义的某些
属性值,或者设置拦截器(进行日志记录,登陆判断。权限检查等)
十、bean的管理(注解方式)
1、对象注解
@ComPonent
@Service
@Controller
@Repository
四个注解功能都一样,都可以来创建bean实例。
2、基于注解方式实现对象创建的步骤?
(1)引入依赖
(2)开启组件扫描
(3)创建类,在类上添加创建对象注解
3、基于注解方式实现属性注入?
@AutoWired:根据属性类型进行自动装配
@Qualifier:根据属性名称
@Resource:类型/名称
@Value:普通属性注入
2021-10-10
最新推荐文章于 2024-08-24 14:38:34 发布