zoukankan      html  css  js  c++  java
  • Hibernate 和 MyBatis 的区别

            Hibernate 和 MyBatis 的增、删、查、改,对于业务逻辑层来说大同小异,对于映射层
    Hibernate 的配置不需要接口和 SQL,相反 MyBatis 是需要的。对于 Hibernate 而
    不需要编写大量的 SQL,就可以完全映射,同时提供了日志、缓存、级联(级联比 MyBatis
    强大)等特性, 此外还提供 HQL (Hibernate Query Language )对 POJO 进行操作,使用十
    分方便,但是它也有致命的缺陷。


           由于无须 SQL,当多表关联超过 3 个的时候,通过 Hibernate 的级联会造成太多性能的
    丢失,又或者我现在访问个财务的表,然后它会关联财产信息表,财产又分为机械、原
    料等,显然机械和原料的字段是不样的,这样关联宇段只能根据特定的条件变化而变化,
    而 Hibernate 无法支持这样的变化 遇到存储过程, Hibernate 只能作罢。更为关键的是性能,
    在管理系统的时代,对于性能的要求不是那么苛刻,但是在互联网时代性能就是系统的根
    本,响应过慢就会丧失客户,试想一下谁会去用一个经常需要等待超过 10 秒以上的应用
    呢?


            以上的问题 MyBatis 都可以解决, MyBatis 可以自由书写 SQL、支持动态 SQL、处理
    列表、动态生成表名、支持存储过程。这样就可以灵活地定义查询语句 ,满足各类需求和
    性能优化的需要,这些在互联网系统中是十分重要 的。
    但 MyBatis 也有缺陷 。首先,它要编写 SQL 和映射规则,其量稍微大于 Hibernate
    其次,它支持的工具也很有限,不能像 Hibernate 那样有许多的插件可以帮助生成映射代码
    和关联关系,而即使使用生成工具,往往也需要开发者进步简化, MyBatis 通过手工编
    码,工作量相对大些。所以对于性能要求不太苛刻的系统,比如管理系统、 ERP 等推荐使
    用 Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用 MyBatis

  • 相关阅读:
    【转】Windows守护进程的一种简单实现
    vim 文本会在末尾自动添加换行 md5文件和数据只不对应
    指向指针的指针的理解和应用
    TinyXML C++解析XML
    加密解密 AES RSA MD5 SHA
    微信支付 php兼容问题
    sublime text 2 php 语法错误检查
    微信支付宝支付
    MySql安装和基本管理
    验证码处理
  • 原文地址:https://www.cnblogs.com/limn/p/9356489.html
Copyright © 2011-2022 走看看