hibernate和mybatis的区别
来源:互联网 发布:mysql update 关联表 编辑:程序博客网 时间:2024/06/05 05:15
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。 MyBatis是半自动化,需要我们私人定制SQL语句进行CRUD的操作,Hibernate全自动化,只是我们针对于对象的操作即可
Mybatis学习门槛低,简单易学,Mybatis框架相对简单很容易上手,但也相对简陋些 程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。
Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。而Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。
Hibernate HQL语句的调优需要将SQL打印出来,而Hibernate的SQL被很多人嫌弃因为太丑了。MyBatis的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。Mybatis本身不带日志统计,使用Log4j进行日志记录。hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。
相同点:Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
不同点:- MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
- MyBatis容易掌握,而Hibernate门槛较高。
- Hibernate功能强大,数据库无关性好,O/R映射能力强
- hibernate数据库移植性远大于mybatis。hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。
- Mybatis缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。
- Hibernate和MyBatis的区别
- Hibernate和MyBatis的区别
- MyBatis和Hibernate的区别
- Hibernate和MyBatis的区别
- Hibernate和Mybatis的区别
- MyBatis和Hibernate的区别
- mybatis和hibernate的区别
- Hibernate和mybatis的区别
- Hibernate和MyBatis的区别
- hibernate和mybatis的区别
- Hibernate和Mybatis的区别
- mybatis 和 hibernate 的区别
- mybatis和hibernate的区别
- mybatis和hibernate的区别
- hibernate和mybatis的区别
- mybatis和hibernate的区别
- Hibernate和MyBatis的区别
- mybatis和hibernate的区别
- Android性能优化之利用强大的LeakCanary检测内存泄漏及解决办法
- 继承(基础)
- easyui中datagrid的destroyUrl方法源码的修改从而使传送的数据是对象
- java源码中的生词摘录成有道词典单词本
- UML类图与类的关系详解
- hibernate和mybatis的区别
- Intent+SharedPreferences在活动中传递数据
- 分布式事务--XA 解决多个数据源操作
- HDU 1525 Euclid's Game
- 1.2.2实现Runnable接口
- titleinfo.html
- Web项目集成FineReport
- 架构师之路-创业互联网公司如何搭建自己的技术架构
- linux下配置squid 服务器,最简单使用方式