作为一名后端开发人员,相信大家对Mybatis框架都不会陌生,但是许多人都停留在它的使用层面,本篇文章就对Mybatis中的架构做一个简单介绍,帮助大家进一步认识Mybatis。
一: Mybatis作用
Mybatis是支持定制化SQL、存储过程、高级映射的优秀持久层框架,主要完成以下两件事:
1、封装传统的JDBC操作。
2、通过反射完成JAVA实体和数据表映射关系及SQL语句之间的相互转换。
二: 划分的层次
主要可以将它划分为:接口层、数据处理层、基础支撑层
三: 各层次的作用
1、接口层
提供外部接口使用的API,通过这些接口进行数据库功能的调用,接口层接收到请求后,将请求转给数据处理层进行相应的处理。
具体体现
1、mybatis提供的API
2、基于Mapper接口(一个Mapper.xml对应一个接口)
2、数据处理层
作用: 通过接口层传递的参数动态构建SQL语句,执行SQL语句并封装返回执行语句的结果。
1、参数映射和SQL语句封装: Mybatis根据传入的参数,使用Ognl来动态构建SQL语句,使之具有很强的灵活性和拓展性。
2、参数映射: 即java数据类型和jdbc数据类型之间的转换,在查询阶段,通过prepareStatement.setXXX来设置值,在封装阶段,对resultSet对结果集进行jdbcType类型转成java数据类型。
3、支持类型: 支持结果集中关系一多一、一对多、多对多的关系转换
3、基础支撑层
作用: 负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
举个简单的案例
在餐厅中,接口层就是服务员,负责给客人服务,数据接口层就是后台,负责将客人的需要进行解读、然后去生产客人需要的菜,基础支撑层就如餐厅后勤,负责对数据接口层产生层进行必要的支持如:清洁、财务等。
本篇文章就Mybatis架构进行一个简单的介绍,后续文章会深入介绍其中的各个细节。经验就是一个积累的过程,没有谁能够一步登天,所以脚踏实地才是成功的秘诀。