如何选择使用Hibernate和mybatis,简单对比

对比项

Hibernate

mybatis

学习成本
系统调优方案对比

1、制定合理的缓存策略;

2、尽量使用延迟加载特性;
3、采用合理的 Session 管理机制;
4、使用批量抓取,设定合理的批处理参数(batch_size)

5、进行合理的 O/R 映射设计

1、MyBatis 可以进行详细的 SQL 优化设计

2、MyBatis 在 Session 方面和 Hibernate 的 Session 生命周期是一致的, 同样需要合理的 Session 管理机制。 MyBatis 同样具有二级缓存机制。

 

 

 

SQL优化方面

1、使用的是封装好, 通用的 SQL 来应付所有场景
2、查询时,会查询所有字段,会有不必要的性能消耗

3、可以自己写SQL,但违背了框架的初衷

1、是针对响应的场景设计的 SQL,更灵活、 可控性更好、 更优化
2、SQL是手动编写的,按需查询

移植性

1、与具体数据库的关联只需在 XML 文件中配置即可

2、所有的 HQL 语句与具体使用的数据库无关, 移植性很好

1、所有的 SQL 语句都是依赖所用的数据库的

2、所以不同数据库类型的支持不好

JDBC 是在 JDBC 上进行了一次封装。
 
基于原生的 JDBC 的。 Mybatis 有运行速度上的优势。
 
动态SQL 不支持 支持
建议选择情况 1、适用于中小企业需求变化不多的项目, 比如后台管理系统, erp、 orm、oa
2、其它条件满足,看团队大多数人员的倾向使用

1、数据量大(千万级),高并发

2、表关联复杂度(>20)

3、项目要求对于数据库可控性好, 可深度调优

备注 全“智能”,效率慢 半“智能”,效率快些(而JDBC效率更快,性能更高
\    

 

你可能感兴趣的:(如何选择使用Hibernate和mybatis,简单对比)