加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration对象和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着<select | update | delete | insert>标签项
SqlSessionFactoryBuilder通过Configuration对象生成SqlSessionFactory,用来开启SqlSession
SqlSession对象完成和数据库的交互:
用户程序调用mybatis接口层api(即Mapper接口中的方法)
SqlSession通过调用api的Statement ID找到对应的MappedStatement对象
通过Executor(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象
JDBC执行sql
借助MappedStatement中的结果映射关系,将返回结果转化成HashMap、JavaBean等存储结构并返回
分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql, 然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。
Mybatis支持对Executor、StatementHandler、PameterHandler和ResultSetHandler 接口进行拦截,也就是说 会对这4种对象进行代理
Mybatis执行流程
最新推荐文章于 2023-03-21 00:38:44 发布