亲宝软件园·资讯

展开

初窥Mybatis初始化

Slags 人气:0
# 引言 这篇文章呢,主要是讲Mybtais的两种方式的源码剖析:传统方式以及Mapper代理方式,初次探索Mybatis源码,希望大佬勿喷并且指正错误,谢谢! 个人博客:www.fqcoder.cn # 一、Mybatis架构原理 ### 1.架构图 首先,让我们来看看下面这张图: ![image-20200305163124096](https://img-blog.csdnimg.cn/20200307142752856.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNjk1ODAy,size_16,color_FFFFFF,t_70) 我们吧Mybtais功能架构可以分为三层: 1.接口层:提供给外部使用的接口API,开发人员通过这些本地API来操作数据库。接口一层接收到调用请求就会调用数据处理来完成具体的数据处理。 MyBatis和数据库交互有两种方式:(也是我们接下来需要死磕的目标) a.使用传统的Mybatis提供的API b.使用Mapper代理的方式 2.数据处理层:负责具体的SQL查找、SQL解析、SQL执行、结果处理和映射等,它主要的目的是根据调用的请求完成一次数据库的操作。 3.框架支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。 ### 2.主要构件及其相互关系 | 构件 | 描述 | | :--------------: | ------------------------------------------------------------ | | SqlSession | 作为MyBatis工作主要顶层API,表示和数据库交互的会话,完成必要数据库
增删改查功能 | | Executor | Mybatis执行器,是Mybatis调度的核心,负责SQL语句的生成和查询缓存的维护 | | StatementHandler | 封装了JDBC Statemenet操作,负责对JDBC Statement的操作,如设置参数、
将Statement结果集转换成List集合 | | ParameterHandler | 负责对用户传递的参数转换成JDBC Statement所需要的参数 | | ResultSetHandler | 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合 | | TypeHandler | 负责java数据类型和jdbc数据类型之间的映射和转换 | | MappedStatement | MappedStatement维护了一条

加载全部内容

相关教程
猜你喜欢
用户评论