MyBatis 与Hibernate 有哪些不同?

原创
10/17 19:44
阅读数 98

Mybatis 和 Hibernate 不同,它不完全是一个 ORM (Object Relational Mapping)框架,因为 MyBatis 需要程序员自己编写 Sql 语句。可以这么理解: Mybatis 是一个半自动化的ORM框架, Hibernate 是全自动化的ORM框架。

开发速度的对比:

Mybatis学习门槛低,简单易学,可以直接编写原生态sql。 Hibernate 相对难一些。对于一些项目基本没有复杂查询,只是一些简单的增删改查,就可以使用 Hibernate ,他是自己已经封装好了基本的sql语句。对于一些大型的项目,复杂查询更多这时候就可以使用 Mybatis ,灵活度高更加便于管理。

开发工作量的对比:

Mybatis 需要自己编写sql语句,并且配置对象之间的关系。 Hibernate 不需要自己写sql,就可以完成数据库操作。通过java代码操作对象,框架自动封装成sql语句之后在执行,并且是跨数据库的。

sql方面:

MyBatis 手动编写 SQL,支持动态 SQL、处理列表、动态生成表名、支持存储过程,优化修改工作比较方便。Hibernate 不需要编写大量的 SQL,就可以完全映射,提供了日志、缓存、级联(级联比 MyBatis 强大)等特性。查询方面:Hibernate的查询会将表中的所有字段查询出来,会出现性能损耗,因为 MyBatis 手动编写 SQL ,想怎么查就怎么查。日志打印方面: Hibernate 有自己的日志统计, MyBatis 需要Log4或者Slf4j进行打印。

其他方面暂不做对比。两个框架各具优势,按照实际情况灵活选择。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部