当前主流的持久层框架:hibernate、mybatis、spring jdbc。请问各有什么好处,最终选择哪个,为什么选择这个?
iBATIS、Hibernate和JPA是用于把数据持久到关系数据库中的三种不同的机制,每种都有着自己的优势和局限性。
iBATIS不提供完整的ORM解决方案,也不提供任何的对象和关系模型的直接映射。
Hibernate提供了一个完整的ORM解决方案,但不提供对查询的控制权。
JPA也提供一个完整的ORM解决方案,并提供对诸如继承和多态一类的面向对象编程特性的支持,不过它的性能则取决于持久性提供程序。
底层本质都是jdbc,所以如果想对sql有完整的控制,或者sql本身就比较简单,那直接用jdbc就好。ibatis适用于想把sql语句和代码分离,并且重用部分sql语句的场景。同时ibatis还能做一点简单的sql结果集和对象的映射。hiberinate本身集成了很多dao层的最佳实践,适合做db层和复杂对象结构之间的转化,但是使用hibernate需要对他的本身机制有所了解,才能做到不误用,有一定的学习曲线
如果你对SQL不是太了解,使用Hibernate
如果你精通SQL,想取得较高的性能,使用MyBatis。
Spring JDBC我是没有使用过。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。