不同jpa比较
通过本博客,你可以知道:
- 什么是jpa
- 不同的jpa provider(Hibernate、EclipseLink、OpenJPA、TopLink)的区别。
一、什么是jpa
jpa是一个在数据库和java 对象之间用于获取、持久化、管理数据的规范。个人理解就是将java对象和数据库记录映射起来,便于直观的操作数据库。
源自:*
The Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects / classes and a relational database
由于jpa是一个规范,那么就有对这个规范的实现。有四种对jpa的实现:
- Hibernate
- EclipseLink
- OpenJPA
- TopLink
二、不同的jpa provider(Hibernate、EclipseLink、OpenJPA、TopLink)的区别
参考文献: JPA implementations comparison: Hibernate, Toplink Essentials, Openjpa, Eclipselink
下面是在30分钟内对不同jpa的测试:
由此可见:
- hibernate 在插入时很快,但查询时最慢,在内存方面也是占用最多的。
- 不同jpa中,查询最快的是TopLink(不过这些jpa的查询速度都差不多)
- 对内存占用最少的是TopLink
所以,个人选择还是使用Hibernate
结论
对于不同的jpa的选择,选择Hibernate.