mybatis和hibernate的区别面试题

发布网友 发布时间:2022-03-24 22:10

我来回答

9个回答

热心网友 时间:2022-03-24 23:39

区别还是很多的,相对来说这两者所说的也不是完全一回事有相应的是适应面

热心网友 时间:2022-03-25 00:57

这个面试题说句实话,你要有你自己的看法,就是说在这个面试过程中,你要形成你自己的一些观点才可以。

热心网友 时间:2022-03-25 02:32

1 简单简介

    1.1    Hibernate 框架 

        Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射。是一个全自动的、完全面向对象的持久层框架。

    1.2    Mybatis框架

        Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管以后更名。是一个半自动化的持久层框架。

2 两者区别

    2.1 开发方面

        在项目开发过程当中,就速度而言:

            hibernate开发中,sql语句已经被封装,直接可以使用,加快系统开发;

            Mybatis 属于半自动化,sql需要手工完成,稍微繁琐;

        但是,凡事都不是绝对的,如果对于庞大复杂的系统项目来说,发杂语句较多,选择hibernate 就不是一个好方案。

    2.2 sql优化方面

        Hibernate 自动生成sql,有些语句较为繁琐,会多消耗一些性能;

        Mybatis 手动编写sql,可以避免不需要的查询,提高系统性能;

    2.3 对象管理比对

        Hibernate 是完整的对象-关系映射的框架,开发工程中,无需过多关注底层实现,只要去管理对象即可;

        Mybatis 需要自行管理 映射关系;

    2.4 缓存方面    

相同点:

Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓    存方案,创建适配器来完全覆盖缓存行为。

不同点:

Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置,然后再在具体的表-对象映射中配置是那种缓存。

MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且Mybatis可以在命名空间*享相同的缓存配置和实例,通过Cache-ref来实现。

比较:

          Hibernate 具有良好的管理机制,用户不需要关注SQL,如果二级缓存出现脏数据,系统会保存,;

           Mybatis 在使用的时候要谨慎,避免缓存CAche 的使用。

Hibernate优势

    Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

    Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

    Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

    Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

    Mybatis优势

    MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

    MyBatis容易掌握,而Hibernate门槛较高。

    一句话总结

    Mybatis:小巧、方便、高效、简单、直接、半自动化

    Hibernate:强大、方便、高效、复杂、间接、全自动化

热心网友 时间:2022-03-25 04:23

这个面试题的话,它们的区别在于一个考试理论不同,而且一个价格不同。

热心网友 时间:2022-03-25 06:31

面试的区别就是说问你的问题,跟你考你的临场反应。

热心网友 时间:2022-03-25 08:56

My babies和hibernate的区别面试题就是根据人们当时的表现力而定。

热心网友 时间:2022-03-25 11:37

这是体会过女选择这题的区别,在哪里的话你可以看下特语法关系?

热心网友 时间:2022-03-25 14:35

你要区别这个面试题的话,你可以在操作系统里面看都可以的

热心网友 时间:2022-03-25 17:50

这两个型号是区别面试题,他们的类型和题目是不同的。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com