个人理解: 大中项目,很规范的,多表联合查询相对少的,速度要快的,选H, 中小项目,上手简单的,SQL文比较复杂的,有可能会多次改动的,选M
开发对比开发速度Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。
Hibernate 是完整的对象/关系映射解决方案,它提供了对象状态管理(state management)的功能,使开发者不再需要理会底层数据库系统的细节。也就是说,相对于常见的 JDBC/SQL 持久层方案中需要管理 SQL 语句,Hibernate采用了更自然的面向对象的视角来持久化 Java 应用中的数据。换句话说,使用 Hibernate 的开发者应该总是关注对象的状态(state),不必考虑 SQL 语句的执行。这部分细节已经由 Hibernate 掌管妥当,只有开发者在进行系统性能调优的时候才需要进行了解。而MyBatis在这一块没有文档说明,用户需要对对象自己进行详细的管理。
先从大多数的大型工程会选择mybatis,在灵活度和扩展性方面会更胜一筹
两者都是现在流行的持久层的开发框架,各有优劣,主要参考项目规模,维护程度,开发人员组成,项目交付时间,数据量规模,表之间关系的复杂度等综合而定,还有就是对于性能方面是否有特定要求。
这两个都挺好用的,Hibernate 可以不用写 xml,查询更灵活。mybatis 一般使用 xml 来定义映射文件,以及查询规则,用起来也更可控
类比的话,Hibernate 像自动档汽车,mybatis 像手动档汽车
都挺好用的,Hibernate 自动化程度更高一些,一般不用写 xml; mybatis 一般通过 xml 来定义表映射和查询语句
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。