Mybatis源码相关知识

it2023-07-25  71

1、Mappers的解析方式

mapper加载方式一共有四种,其中name也就是package的级别最高:

resourceurlclassname
1. 使用resource进行解析
<!-- 使用相对于类路径的资源引用 --> <mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/> </mappers>
2. 使用url进行解析
<!-- 使用完全限定资源定位符(URL) --> <mappers> <mapper url="file:///var/mappers/AuthorMapper.xml"/> <mapper url="file:///var/mappers/BlogMapper.xml"/> <mapper url="file:///var/mappers/PostMapper.xml"/> </mappers>
3. 使用class进行解析
<!-- 使用映射器接口实现类的完全限定类名 --> <mappers> <mapper class="org.mybatis.builder.AuthorMapper"/> <mapper class="org.mybatis.builder.BlogMapper"/> <mapper class="org.mybatis.builder.PostMapper"/> </mappers>
4. 使用name进行解析
<!-- 将包内的映射器接口实现全部注册为映射器 --> <mappers> <package name="org.mybatis.builder"/> </mappers>

2、Mybatis的执行器

从类型上来区分Mybatis的执行器有两种

缓存执行器非缓存执行器 从功能上来区分Mybatis的执行器一共有3种,默认是SIMPLESIMPLE-默认执行器,这个类型不做特殊的事情,它只为每个语句创建一个PreparedStatement。REUSE-重用预编译执行器,这种类型将重复使用PreparedStatements。BATCH-批量执行器,这个类型批量更新,且必要地区别开其中的select 语句,确保动作易于理解。

3、关于Mybatis的一级缓存

Mybatis的一级缓存默认是开启的,由Mybatis源码中cacheEnable属性进行控制,该属性默认为true也就是默认开启一级缓存。

1. Mybatis的一级缓存的使用

Mybatis的缓存使用时通过id、offersetid、limited和sql组装创建一个key然后将这个key放入缓存中,在执行SQL的时候先查询缓存中对应的key是否存在,如果存在则从缓存本地查询如果不存在则执行SQL查询并将key和查询结果放入本地缓存中。

4、ORM框架的定义

ORM框架是:Object Relational Mapping用于实现面向对象编程语言中不同类型系统的数据之间的转换。

以上为个人总结的一些笔记,若有雷同纯属巧合,若有错误欢迎指出,谢谢!

最新回复(0)