• 持久化ORM框架——Hibernate与mybatis


      最初SUN公司推出了JavaEE服务器端组件模型(EJB),但是由于EJB配置复杂,且适用范围较小,于是很快就被淘汰了。与EJB的失败伴随而来的是另外一个框架的应运而生。他就是至今也比较流行的Hibernate。

    Hibernate(适用于场景不太复杂,要求性能不苛刻)

      Hibernate是建立在POJO和数据库模型的直接映射关系上的。

      Hibernate是建立在若干POJO通过XML映射文件(或注解)提供的规则映射到数据库表上。换句话说,我们可以通过POJO直接操作数据库的数据。它提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要编写SQL语言,只要适用HQL语言就可以了。

      Hibernate的XML文件描述的是POJO和数据库表的映射关系。Hibernate通过配置文件(或注解)就可以把数据库的数据直接映射到POJO上,我们可以通过操作POJP做操作数据库记录。对于不擅长SQL的程序员来说,这是莫大的惊喜,因为通过Hibernate你几乎不需要编写SQL就能操作数据库的记录。

      其通过建立Hibernate的工厂对象(SessionFactory),用它来做全局对象,产生Session接口,就可以操作数据库了。

      Hibernate的优势主要是:
      (1)在配置了映射文件和数据库连接文件后,Hibernate就可以通过Session操作,非常容易,消除了JDBC带来的大量代码;

      (2)同时还提供了级联、缓存、映射、一对多等功能。

      缺陷:

      (1)全表映射带来的不便,比如更新时需要发送所有的字段。

      (2)无法根据不同的条件组装不同的SQL。

      (3)对多表关联和复杂SQL查询支持较差,需要自己写SQL,返回后,需要自己将数据组装成POJO。

      (4)不能有效支持存储过程。

      (5)虽然有HQL,但性能较差。大型互联网系统往往需要优化SQL,而Hibernate做不到。

      

       在当今大型互联网中,灵活、SQL优化,减少数据的传递时最基本的优化方法,显然Hibernate无法满足我们的要求,于是,MyBatis框架诞生了。

    MyBatis(灵活的、可以动态生成映射关系的框架)

      MyBatis是一个半自动映射的框架,它需要手工匹配提供POJO,SQL和映射关系,而全表映射的Hibernate只需要提供POJO和映射关系便可。

      MyBatis所需要提供的映射文件包含三个部分:

      (1)SQL

      (2)映射关系

      (3)POJO

      MyBatis需要自己编写SQL,但是支持配置动态SQL,MyBatis几乎能做到JDBC所能做到的所有事情。MyBatis具有自动映射功能。换句话说,在注意一些规则的基础上,MyBatis可以给我们完成自动映射,而无需再写任何的映射规则。

      缺点:

      配置工作量大。

      

      

  • 相关阅读:
    2017-2018-1 20155225 《信息安全系统设计基础》第三周学习总结
    2017-2018-1 20155225 《信息安全系统设计基础》第2周课堂实验
    20155225 2017-2018-1 《信息安全系统设计基础》第一周学习总结
    课堂实践——数据库
    20155225 2016-2017-2《Java程序设计》课程总结
    20155225 实验五《网络编程与设计》实验报告
    20155225 实验四《Android程序设计》实验报告
    转载
    HDU
    SCU
  • 原文地址:https://www.cnblogs.com/rekent/p/7458598.html
Copyright © 2020-2023  润新知