Java开发周更

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;最后是结果映射,包括结果映射配置,结果类型转换和结果数据拷贝。

上一篇下一篇

猜你喜欢

热点阅读