Mybatis与Hibernate区别

举报
晴天X风 发表于 2018/04/18 19:29:57 2018/04/18
【摘要】 MybatisHibernateBoth量级轻量级,上手简单,插件多重量级,功能齐全,精通较难SQL自由度高。提供更灵活的SQL编写方式。低。仅对基本的SQL语法有较好支持。不过Hibernate也支持自己手动写SQL。都支持编写SQL开发效率低。需要维护SQL。高。DAO层开发更简单,支持JPA。数据库无关性差。所有SQL都是依赖数据库书写的,需要针对特定数据库维护SQL。好。高度解耦,封...

MybatisHibernateBoth
量级轻量级,上手简单,插件多重量级,功能齐全,精通较难
SQL自由度高。提供更灵活的SQL编写方式。低。仅对基本的SQL语法有较好支持。不过Hibernate也支持自己手动写SQL。都支持编写SQL
开发效率低。需要维护SQL。高。DAO层开发更简单,支持JPA。
数据库无关性差。所有SQL都是依赖数据库书写的,需要针对特定数据库维护SQL。好。高度解耦,封装了JDBC的实现,只需在配置中指定数据库。
缓存自身的缓存机制较差。自身的缓存机制较好,可避免脏读。都可以对具体的表-对象映射配置缓存,都支持二级缓存,且都支持第三方缓存机制
映射POJO与SQL的映射,将SQL所需的参数、返回的结果字段映射到指定POJO,半ORM,实际是SQL mappingPOJO与数据库表的映射,自动生成和执行SQL,完全的ORM
性能稍高用封装方法性能会降低一点(SQL生成、全字段查询),用Native查询方法性能与Mybatis差不多
适用场景擅长复杂的查询,适用于分析型系统。计算机集群需要跨数据库事务时,Mybatis更灵活。面向对象的思维方式更有利于业务系统建模分析,适合单数据库,数据量小,无多表关联,数据库结构不稳定的项目。




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。