Mybatis学习笔记
2019-09-28 本文已影响0人
昙花未现
一、初始化原理
XML配置的初始化流程
基于XML配置文件创建Configuration对象。
Configuration配置包含以下配置信息:
properties 属性
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
使用Configuration对象初始化、创建并使用SqlSessionFactory对象。
二、#和$的不同点
#{ }是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如上面的值 “4,44,514”就会变成“ '4,44,514' ”;
${ }是字符串替换,MyBatis在处理${ }时,它会将sql中的${ }替换为变量的值,传入的数据不会加两边加上单引号。因此会导致sql注入,不利于系统的安全性!
三、缓存
一级缓存
二级缓存
四、 数据处理流程
首先是mapper接口方法中的参数映射,包括参数映射配置和解析,参数类型解析;接着是SQL解析,包括SQL获取,SQL解析和动态SQL;接着是SQL执行,有SimpleExecuter,BatchExecuter和ReuseExecuter;最后是结果映射,包括结果映射配置,结果类型转换和结果数据拷贝。