框架学习:ibatis框架的结构和分析
由于最近一段时间比较忙碌,《框架学习》系列的文章一直在搁浅着,最近开始继续这个系列的文章更新。
在上篇文章中我们说到了hibernate框架,它是一种基于JDBC的主流持久化框架,是一个优秀的orm实现;它对JDBC进行了轻量级的封装,大大简化了数据访问层繁杂的重复代码;而且它利用了java反射机制来实现程序的透明性;它的本意是从对象出发而非关系数据库出发,这一点也就是说明它是以面向对象思维解决数据库的操作问题。
我们今天要介绍另一种ORM框架---ibatis框架,这个框架是一种“半自动化”的ORM实现,它针对sql语句进行映射。它还是从关系型开始到对象型的思路来解决数据库的操作问题。这一点和hibernate的设计思路不同。而且我们知道hibernate框架是一个“全自动化”的框架,能够实现pojo对象和数据表的映射,而这点和ibatis框架也是不同的。
下面是ibatis框架结构图:
从结构图中我们能够看出来ibatis框架中的几个关键的结构:
1. SqlMapConfig.xml
2. SqlMap.xml
3. ParameterObject
4. ResultObject
5. SQLMap
6. JDBC
这里面的sqlMapConfig.xml主要是完成事务的配置和数据库的连接,还有就是引入SqlMap.xml配置文件(这点从结构图中能够看出来);SqlMap.xml主要是配置sql语句还有一个输入映射和输出映射;Paramter Object和Result Object主要是sql语句的输入映射成的对象和输出映射成的对象;SQL Map是ibatis框架的核心,就是sql映射的核心控制;JDBC就是底层sql语句执行的支持。
所以我们能够从这个结构图中我们就能看出来,ibatis框架是也是一个基于JDBC的ORM框架,它的ORM映射不同于hibernate框架,它是对sql语句的输入输出进行映射的一个框架。
通过上面的分析我们能够对ibatis框架有了一定程度的认识,那么这个框架有什么优点呢?
Ibatis框架的优点:
1. 小巧灵活,可扩展,封装了数据访问层
2. ibatis是半自动化的,通过输入输出和对象的映射以及手工书写的sql语句,能够实现比hibernate等更高的查询效率
3. 利用Ibatis我们可以做到代码和sql的分离,只要sql能够解决的问题,Ibatis就能帮我们较容易的解决,同时也使我们的项目对某一框架的依赖性变小
4. 。。。
以上所讲的就是今天介绍的这个ibatis框架的结构和一些分析,在下面一篇博客中我就会针对ibatis和hibernate框架做一个简单的比较,通过比较来更加深入的了解这两个框架的设计思路和设计理念的不同。