选择hibernate还是选择ibatis,其实都有它的道理,本文分别介绍了两个的特性,并对其自身特点和使用特点做了比较。
AD:
ibatis 简介
相对hibernate和apache ojb 等"一站式"orm解决方案而言,ibatis 是一种"半自动化"的orm实现。所谓"半自动",可能理解上有点生涩。纵观目前主流的orm,无论hibernate 还是apache ojb,都对数据库结构提供了较为完整的封装,提供了从pojo 到数据库表的全套映射机制。程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate或者ojb 提供的方法完成持久层操作。程序员甚至不需要对sql 的熟练掌握,hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行。
ibatis最直接的好处就是不但为程序员提供了对象与关系数据库之间的映射,同时提供操作方法与sql间的直接影射,设计者可以直接为一个方法指定一条sql语句,从而取得更加准确的数据,同时为优化查询、连接查询提供了方便。
一、基本功能
作为又一个轻量级的orm中间件,ibatis除了提供了对数据库基本的增、删、改、查外还提供了连接管理,缓存支持,线程支持,(分布式)事物管理等一套教为完整的数据库管理功能。
sqlmapclient对象是ibatis持久层操作的基础,相当于hibernate中的session,提供对sql映射的方法。
insert()方法实现对插入sql语句的映射;
delete()方法实现对删除sql语句的映射;
update()方法实现对更新sql语句的影射;
queryforlist()、queryformap()、queryforobject()、 queryforpaginatedlist()等方法提供了一组查询sql语句的影射;
二、使用步骤
1.ibatis sql map 配置文件
文件中对所用数据库的连接做了基本配置,包括数据库驱动类型、用户名、密码,以及连接池的相关管理数据。
2.po和映射文件
和hibernate一样,po作为数据库关系表的影射,也需要响应的映射配置文件,可以手写,也可以借助hibernate的相关工具生成po,不会影响po在ibatis中的使用。与hibernate不同的是,ibatis的映射文件中没有对po中每个属性做响应的描述,而是指定了一系列与po有关的sql相关操作,也体现了ibatis良好的灵活性与可扩展性。
3.编写dao
在dao中,可以使用sqlmapclient提供的方法来对应的指定对po操作的sql语句,从而使业务逻辑层的开发仍然是面向对象的操作。