mybatis和hibernate的优缺点
(1)考察目标
主要对mybatis和hibernate的优缺点进行考核。
(2)题目分析
Hibernate的优点
hibernate是全自动,hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。
功能强大,数据库无关性能好坏,O/R映射能力强,需要写的代码很少,开发速度很快。数据库移植性良好。
spring data jpa对hibernate又进行了一次封装,从而让使用者只需通过一套注解实现映射配置,而通过代理方式创建dao接口的实现,让使用者不再为dao的实现进行开发,使用起来更加方便。
Hibernate的缺点
学习门槛高,精通门槛更高,程序员如何设计O/R映射,在性能和对象模型之间如何取得平衡,以及怎样用好Hibernate方面需要的经验和能力都很强才行。
hibernate的SQL很多都是自动生成的,无法直接维护SQL;虽然有hql查询,但功能还是不及SQL强大,hql查询是有局限的;hibernate虽然也支持原生sql查询,但开发模式上却与orm不同,需要转换思维,因此使用上有些不方便。
Mybatis的优点
易于上手和掌握,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。
SQL写在xml里,便于统一管理和优化,解除SQL与程序代码的耦合。提供映射标签,支持对象与数据库的orm字段关系映射。提供xml标签,支持编写动态SQL。速度相对于Hibernate的速度较快。
Mybatis的缺点
关联表多时,字段多的时候,SQL工作量很大。
SQL依赖于数据库,导致数据库移植性差。
(3)应用场景:
在实际项目中,可以同时使用多个数据访问层框架。对于单表的增删改查建议使用hibernate框架使开发更加高效,对于需要复杂的SQL比如多表联查建议使用mybatis框架会更加灵活。
(4)总结
本题考察点:
1)mybatis的优缺点
2)hibernate的优缺点