文档章节

ibatis与hibernate比较

陈小扁
 陈小扁
发布于 2016/03/22 10:31
字数 543
阅读 64
收藏 5

ibatis与hibernate比较

大家都知道ibatis与hibernate 是持久层框架, 那么在架构选型中,应该选用哪一种框架比较好呢, 首先的原则是基于一定的业务背景, 下面我们来比较一下两个框架的区别:


共同点

  • 都是ORM(Object Relationship Mapping)框架,直接与数据库打交道

  • 提供方言支持不同类型的数据库的访问

  • 可以由spring来统一管理, 都是开源的

      

区别

  • hibernate是当前流行的ORM框架, 相对比较复杂,学习周期长

  • ibatis目前属于apache的一个子项目, ibatis上手快,很容易学


技术选型

  1. hibernate对数据结构进行了很好的封装,可以实现POJO与数据库表之间的映射,还能根据POJO及SQL自动生成表和执行命令, 开发人员只需要定义好POJO到数据库表的映射关系, 即可通过hibernate提供的方法完成持久层操作,开发人员不需要对sql熟练掌握, hibernate会根据制定的存储逻辑,自动生成sql语句

  2. ibatis定义POJO映射关系需要手动的编写sql语句,通过映射配置文件

  3. 当系统维护或者二次开发,无法对数据结构做到控制和修改,ibatis的灵活性要比hibernate更适合

  4. 当系统数据处理量巨大,性能要求极为苛刻, 需要我们高度优化sql语句才能达到系统性能指标, ibatis会有更好的可控性和表现

  5. ibatis需要手写sql语句, hibernate则基本上可以自动生成, 偶尔会写一些hql,同样的需求 ibatis的工作量要比hibernate大很多,类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方修改

  6. hibernate是主流的ORM框架,从文档的丰富性 产品的完善性,开发速度要强于ibatis

  7. 对于比较轻量级的应用我个人还是觉得使用ibatis开发效率会快很多

© 著作权归作者所有

陈小扁

陈小扁

粉丝 53
博文 87
码字总数 71417
作品 0
浦东
高级程序员
私信 提问
加载中

评论(2)

陈小扁
陈小扁 博主

引用来自“itxx2016”的评论

推荐国内最流行的ibatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
感觉不错,这方面自动代码生成框架很多的 我之前用过一个叫autogen
i
itxx2016
推荐国内最流行的ibatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

我在最初的选型的时候是打算选择 Hibernate 的,在研究的过程中发现了 iBatis,经过 分析比较之后我选择了 iBatis。现在我已经使用 iBatis 完成了一个中小型的项目。这个 项目在性能、可维护...

mj4738
2012/02/18
238
3
iBatis和Hibernate浅析

iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hiber...

JAVA__
2012/08/16
158
1
想讨论下论坛的缓存设计

最近准备做一个论坛项目,考虑到团队的知识积累情况,所以采用了ibatis 但是ibatis自带的缓存数据方式似乎不太适用 例如:论坛的一个贴,贴的内容是经常不变的,但是点击量和评论数是经常变的...

qiuggv
2011/09/16
406
2
凤凰涅槃:从 iBatis 到 MyBatis

简介: 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别,以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习,读者基本能够了解 MyBatis 有哪些方面的改进,并能够顺利使...

IBMdW
2011/06/24
1K
2
Spring整合Ibatis之SqlMapClientDaoSupport

Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建,继而整合iBatis和Spring。 与hibernate类似...

Gillian_Male
2012/08/03
456
1

没有更多内容

加载失败,请刷新页面

加载更多

移动深度学习:人工智能的深水区

人工智能技术经历6年的快速发展,重新定义了很多行业的用户体验,而这仅是开始。 随着5G商用大规模落地,以及智能手机硬件性能越来越强、AIoT设备的快速普及,基于云-边缘-端算法和算力结构的...

博文视点Bv
24分钟前
2
0
vim 分屏 操作

$vim -On file file2 #大写O垂直分屏打开文件 $vim -on file file2 #小写水平打开 # n 表示分屏数,直接n等于文件个数 如果n小于文件,按顺序打开前面的n个,如果大于,打开空编辑页面 分屏快...

突突突酱
26分钟前
3
0
MySQL/Mariadb设置中文字符集(linux)

编辑/etc/my.cnf,添加以下设置 [mysql]default-character-set=utf8[mysqld]character_set_server=utf8[mysqld.safe]default-character-set=utf8[client]default-chara...

编程老陆
29分钟前
3
0
关于linux常用的挂载命令

挂载:就把一块磁盘(可以是光盘,U盘)绑定到一个空目录下面 一般情况下会挂载到mnt目录下面 挂载光盘(把光盘挂载到/mnt/cdrom这个目录中) mount -t iso9660 /dev/cdrom /mnt/cdrom 退出当前目录...

chenhongjiang
30分钟前
3
0
如何分享brain内容外部共享?几个需要知道的TheBrain问答

TheBrain(点击下载)是一款与众不同的思维导图软件,其所有信息通过一个又一个的节点进行联系,最终形成一个杂而不乱的网状结构。从头开始设计,让您捕获您的想法和信息在一个网络的联想,匹...

mnrssj
30分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部