hibernate和mybatis的区别是什么?

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

我来回答

2个回答

懂视网 时间:2022-03-25 02:31

mybatis和hibernate的区别是:

  

  1、hibernate是全自动,而mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。

  

  2、hibernate数据库移植性远大于mybatis。hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。

  

  3、hibernate拥有完整的日志系统,mybatis则欠缺一些。hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。

  

  4、mybatis相比hibernate需要关心很多细节。hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,因此很容易上手并开发项目,但忽略细节会导致项目前期bug较多,因而开发出相对稳定的软件很慢,而开发出软件却很快。hibernate则正好与之相反。但是如果使用hibernate很熟练的话,实际上开发效率丝毫不差于甚至超越mybatis。

  

  5、sql直接优化上,mybatis要比hibernate方便很多。

  

  

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

Hibernate。 目前最流行的开源ORM框架, 已经被选为JBoss的持久层解决方案。 整个Hibernate项目也一并投入了JBoss的怀抱, 而JBoss又加入了Red Hat组织。 因此, Hibernate属于Red Hat组织的一部分。 Hibernate灵巧的设计、 优秀的性能, 以及丰富的文档, 都是其风靡全球的重要因素。


MyBatis( 早期名称是 iBATIS) 。 Apache 软件基金组织的子项目。 与其称它是一种ORM框架, 不如称它是一种“SQL Mapper”框架, 它是一种“半自动化”的ORM的实现, 曾经在Java EE开发中扮演非常重要的角色, 但是其并不支持纯粹的面向对象操作, 它允许开发人员直接编写SQL语句, 更加灵活。

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