Hibernate:“全自动化封装” 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。
iBATIS 半自动化封装 并不会为程序员在运行期自动生成 SQL 执行。
例如
在笔者的系统咨询工作过程中,常常遇到以下情况:
1. 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。
2. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)
3. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。
这篇博客介绍一下hibernate框架和ibatis框架的区别,以及他们的效率之间的比较。
比较方面
Ibatis框架 Hibernate框架
从设计思路来看
从关系型开始到对象型的思路来解决数据库的操作问题 从对象的角度的思路来解决数据库的操作问题
从方便性上来看
半自动 全自动
从sql语句书写来看
要写sql语句 一般不用写,但是有时候我们还是要用书写hql语句的
从映射角度来看
映射sql语句的输入输出参数 对数据库表结构来进行映射
CURD (create update read delete) 性能 JDBC>ibatis>hibernate
iBATIS 半自动化封装 并不会为程序员在运行期自动生成 SQL 执行。
例如
在笔者的系统咨询工作过程中,常常遇到以下情况:
1. 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。
2. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)
3. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。
这篇博客介绍一下hibernate框架和ibatis框架的区别,以及他们的效率之间的比较。
比较方面
Ibatis框架 Hibernate框架
从设计思路来看
从关系型开始到对象型的思路来解决数据库的操作问题 从对象的角度的思路来解决数据库的操作问题
从方便性上来看
半自动 全自动
从sql语句书写来看
要写sql语句 一般不用写,但是有时候我们还是要用书写hql语句的
从映射角度来看
映射sql语句的输入输出参数 对数据库表结构来进行映射
CURD (create update read delete) 性能 JDBC>ibatis>hibernate