注意本篇文章是基于已经学过并且理解hibernate和mybatis的人写的,如果没有学过阅读本篇文章很可能是不理解的。
共同点:都是一个持久层框架
区 别:1.hibernate是一个标准的orm框架,全自动的,而mybatis是半自动的。
hibernate是一个标准的orm框架,完全可以根据自己的对象关系模型来操作数据,而mybatis也有自己的映射关系,就是输入映射和输出映射,但是SQL语句,对数据的操作却是需要自己去写,所以mybatis是半自动的。
2.hibernate的移植性要优于mybatis
因为hibernate对数据的操作不依赖与数据库,所以可以实现移植性比较高,而mybatis编写SQL语句的时候,需要根据具体数据库来 编写,
3.mybatis的SQL的优化比hibernate做得好
因为hibernate专注于对象,屏蔽了数据库,所以有的时候对SQL语句进行优化就不那么如人意,而mybatis专注于SQL本身,对于项目的灵活度和SQL的优化可以做的很好。
使用场景:
hibernate适用于一些需求变化不多的项目,比如:某某后台管理系统,学生管理系统等。
mybatis使用与一些需求变化比较多的项目,比如:电商平台等互联网项目