http://www.iteye.com/blogs/subjects/mybatis_internals
MyBatis对JDBC的优化和封装
-使用数据库连接池进行进行管理
-SQL语句统一放置到配置文件
-SQL语句变量和传入参数的映射以及动态SQL
-动态SQL语句的处理
-对数据库操作结果的映射和结果缓存
-SQL语句的重复
整体设计
1、总体流程
1.1、加载配置并初始化
触发条件:加载配置文件
配置来自两个地方,一处是配置文件,一处是Java代码注释,将SQL的配置信息加载成为一个MappedStatement对象(包括传入参数映射配置、执行的SQL语句、结果映射配置),储存在内存中。
1.2、接收调用请求
触发条件:调用MyBatis提供的API
传入参数:SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理
1.3、处理操作请求
触发条件:API接口层传递请求过来
传入参数:SQL的ID和传入参数对象
处理过程:
根据SQLID查找对应的MappedStatement对象
根据传入参数对象解析MappedStatement对象,得到执行SQL和执行传入参数
获取数据库连接,根据最终SQL和传入参数到数据库中执行,并得到执行结果
根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
释放连接资源
1.4、返回处理结果
2.功能架构设计
3.框架架构设计
该系列文章参考如下书籍及文章:
《Java Persistence with MyBatis 》
《http://www.cnblogs.com/hzhuxin/p/3349836.html》
《http://www.iteye.com/topic/1112327》
《http://www.iteye.com/blogs/subjects/mybatis_internals》
《http://denger.me/2011/05/mybatis-and-spring-interface-integrated/》