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

  • 相关阅读:
    codeforces 189A
    hdu 2085
    hdu 2083
    cf 1237 C2. Balanced Removals (Harder)
    cf 1244 D. Paint the Tree
    cf 1241 E. Paint the Tree(DP)
    cf 1241 D. Sequence Sorting(思维)
    cf1228 D Complete Tripartite(哈希)
    Windows10 与 WSL(Ubuntu)的文件互访
    Ubuntu下运行python文件
  • 原文地址:https://www.cnblogs.com/limn/p/9356489.html
Copyright © 2011-2022 走看看