zoukankan      html  css  js  c++  java
  • hibernate和ibatis的区别

    通过别人的资料,进行自己关注的一些扼要点的整理

    共同点:

    1.

    不同点:
    1. 自动化程度上,hibernate是全自动化的orm框架,提供了对象到数据库的完全映射和sql的内部自动生成,其对象映射是指pojo到整张数据表的映射。而ibatis则是半自动化的,其对象映射是指ibatis提供了sql语句的参数到pojo的映射,sql语句的返回到pojo的映射,而且sql语句并不自动生成,由开发者手动编写和维护。

    2. 框架灵活性。自动化程度上的区别,直接影响了框架灵活性的区别。比如,在场景A中,要查询表的部分字段,
    在场景B中,要查询表的所有字段,hibernate由于只有一个配置文件,要么就部分字段lazy load,要么就全部
    查询出来,而且默认是(全部查询的),就无法适用2个场景,灵活性差。但要是ibatis,则可以通过不同场景使用
    不同sql语句来满足,并且不同的场景下,也可以有自己的sql语句的参数pojo映射和返回结果pojo映射,互不影响,
    这就灵活的适应了不同场景的要求。

    3. 性能上的区别。在海量数据和数据库性能要求苛刻的场合,往往是通过高度优化的sql语句来实现的,而这种情况下,
    hibernate则无法实现,但ibatis则可能通过sql的优化,来进一步提升数据库代码的性能。

    4. 学习门槛和成本。ibatis比hibernate更容易上手,而且hibernate也更复杂一些。

    5. 框架的成熟度。


    注意,实际开发中,要根据实际场景和需求来选择框架,举个例子

    系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开

    开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定

    最关键的一句话是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

  • 相关阅读:
    读书笔记 ASP.NET 2.0编程珠玑
    为什么公司招聘一个好员工很难,程序员找份好工作也不容易
    读书笔记 ASP.NET 2.0高级编程 第31章 配置
    Win7 x64 旗舰版下重新注册IIS7.5
    T_SQL 开发的13个Tips
    报表服务扩展:基于WCF技术的报表服务扩展
    实现多国语言的Reporting Services项目
    技术人生:如何成为一位优秀的程序员
    幸福框架:待实现的基础应用列表
    技术人生:做人十心机
  • 原文地址:https://www.cnblogs.com/jianglong-liang/p/3816677.html
Copyright © 2011-2022 走看看