0
点赞
收藏
分享

微信扫一扫

本人学习MyBatis时的源码分析

MaxWen 2022-04-14 阅读 56
java

首先认识一下MyBatis

1.MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了Google code,并且改名为MyBatis。2013年11月迁移到GitHub。

2.是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

3.是一个半ORM(对象关系映射)框架,底层封装了JDBC,解决了JDBC代码冗余的问题,在使用过程中直接写入sql语句即可。另外,程序员直接编写原生态sql,严格控制sql执行性能,灵活度高。

4.可以使用简单的 XML文件 或注解方式来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

5.通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

上述片段截取自Mybatis-原理总结 有兴趣可以去看一下,写得非常详细。

开始分析其原理

1.先将MyBatis核心配置文件以输入流的方式读取

2. 将读取的输入流传入SqlSessionFactory的build方法中,build方法会将输入流传入XMLConfigBuilder类并创建一个Configuration的实例(Configuration存储着Mybatis所有的配置信息:MapperRegistry(所有的映射),TypeAliasRegistry(所有的别名),MappedStatement(所有的sql语句),ParameterHandler(所有的参数),ResultSetHandler(处理结果集)

 

3.在Configuration的构造方法中会创建一个XPathPareser(xml文件路径解析器)示例,用来解析xml文件,然后在XPathPareser会根据输入流创建一个Document对象示例 4.调用sqlSessionFactory对象的openSession方法创建一个SqlSession(Mybatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能。这是MyBatis主要的一个类,用来执行SQL,获取映射器,管理事物)      

举报

相关推荐

0 条评论