看了这一篇文章,终于对为什么要用Hibernate或者是iBATIS有了一个清楚的认识,不过,个人觉得Hibernate确实是难了一点,我个人喜欢简单,还是先用iBATIS吧。

转贴地址:http://www.xwin32.cn/program/java/java20061024/67237.html

   Hibernate VS iBATIS首先这个题目有点哗众取宠,呵呵,故意的.参考了网上许多前辈的见解,然后加了自己一点点的理解.如果有什么板砖,欢迎来拍 chinaewolf@gmail.com简介Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了
iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。
相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。
Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
而iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。使用iBATIS 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而iBATIS 则要求开发者编写具体的SQL 语句。相对Hibernate而言,iBATIS 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
二者的对比:1. iBATIS非常简单易学,Hibernate相对较复杂,门槛较高。2. 二者都是比较优秀的开源产品3. 当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合4. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。5. iBATIS需要手写sql语句,也可以生成一部分,Hibernate则基本上可以自动生成,偶尔会写一些Hql。同样的需求,iBATIS的工作量比Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate修改的地方很少,而iBATIS要把那些sql mapping的地方一一修改。6. 以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。7. Hibernate现在已经是主流O/R Mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于iBATIS8. 最关键的一句话是iBATIS的作者说的:If you are starting a new project and you're in full control of your object model and database design, Hibernate is a good choice of O/R tool.If you are accessing any 3rd party databases (e.g. vendor supplied), or you're working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That's were an SQL Mapper comes in handy .

结论:
Hibernate 和iBATIS可以说是互相补充,共同发展的关系.具体你想用什么要看实际情况.如果看了上面的文字还是拿不定注意,那就Just to try it.实践是检验真理的唯一标准.鞋合不合适,只有试了才知道

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

Hibernate VS iBATIS相关推荐

  1. Hibernate和iBATIS 优缺点比较

    选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hiberna ...

  2. 【转】Hibernate和IBatis对比

    原文地址:http://blog.csdn.net/ya2dan/article/details/7396598 项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, ...

  3. 旧调重弹Hibernate与Ibatis区别——深入架构设计

    对于一个粗学者而言一言概况就是:ibatis非常简单易学,hibernate相对较复杂,门槛较高.  但是,hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mappin ...

  4. 旧调重弹Hibernate与Ibatis区别--深入架构设计

    对于一个粗学者而言一言概况就是:ibatis非常简单易学,hibernate相对较复杂,门槛较高.  但是,hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mappin ...

  5. ibatis和hibernate

    ibatis:sql需要自己写 hibernate:sql自动生成 上面是最大的区别,下面是一些细节. 选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hiberna ...

  6. iBatis和Hibernate浅析

    为什么80%的码农都做不了架构师?>>>    iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常 ...

  7. iBATIS、Hibernate和JPA:哪一款最适合你

    iBATIS.Hibernate和JPA:哪一款最适合你 http://article.yeeyan.org/view/213582/180283 在本文中我们介绍并比较两种最流行的开源持久框架:iB ...

  8. ibatis轻松入门

    近日,由于公司项目应用开发的逻辑层使用的是iBatis.上网查了些资料,自己写了点demo入门.感觉良好.iBatis实在是比Hibernate很容易入门,贡献出来与各路菜鸟分享(后文附源码),希望得 ...

  9. 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓

    hibernate工作原理 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提 ...

最新文章

  1. 【PAT乙级】1046 划拳 (15 分)
  2. San介绍以及在百度APP的实践
  3. bzoj4152: [AMPPZ2014]The Captain
  4. java机考_【Java】(机考常用)类集
  5. 大学计算机基础课学几年,大学计算机基础类课程教学(2017年开始)-杭州师范大学计算机教育与.PDF...
  6. 2018 AI趋势:AI芯片更丰富,用机器学习的企业翻倍 | 德勤报告
  7. error C2440: 'static_cast' : cannot convert from 'void (__thiscall CMainFrame::* )(void)' to ...
  8. 2020-06-05 原始套接字/AF_PACKET链路层访问
  9. atitit.条形码的原理与生成总结java Barcode4j barcode o5
  10. IDM最新版软件的安装下载和使用方法
  11. ios gif的分解和展示
  12. linux 历史重大更新整理
  13. php-模板方式模式实现
  14. 初中八年级计算机课程计划,初中信息技术教学计划
  15. 卡耐基梅隆大学计算机熬夜,美国25所著名大学学生平均作息时间表 原来留学生的日子也不好过!...
  16. Flutter的android项目跳转谷歌市场
  17. 江苏小学计算机面试题目,2019下半年江苏省小学信息技术教师资格证面试试题(精选)(四)...
  18. iphone怎么设置农历提醒事项
  19. 一个基于 Docker 的私有云方案
  20. pca q matlab,PCA matlab实现

热门文章

  1. 带你看清梦饷集团如何成为上海在线新经济四小龙
  2. AI开发者十问:10分钟了解AI开发的基本过程
  3. 深度对比Apache CarbonData、Hudi和Open Delta三大开源数据湖方案
  4. 云图说丨手把手教你为容器应用配置弹性伸缩策略
  5. 【华为云技术分享】【测试微课堂】DevOps敏捷测试之道
  6. 目不识丁的我使用Python编写汉字注音小工具
  7. 一条数据的HBase之旅,简明HBase入门教程3:适用场景
  8. 产品ajax无刷新kesion,KesionCMSV6置标使用手册.doc
  9. SpringBoot和缓存
  10. 台式电脑蓝牙关了之后就开不了_台式电脑如何通过iPhone上网?