一直对jpa怀有好感,以前也是用hibernate做jpa的实现产品,运行起来也相当不错,
最近换成openjpa做jpa的实现,突发奇想的对openjpa做了一下测试,没有想到openjpa的性能那么差劲,运行时间一般是hibernate实现jpa的3-8倍,恐怖!
下面是jpa查询结果的代码 ,同样还做了一部份关于关于Hibernate-jpa和openjpa增删改的性能测试,由于代码多就不拿出来了,测试结果都证明了openjpa的性能实在令人堪忧
--openjpa--查询100条记录
@Test
public void testFind_fetch() {
long start = System.currentTimeMillis();
DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
System.out.println(qt.getTotalrecord());
List<DataDictionary> listE = qt.getResultlist();
DataDictionary emp = null;
for(int i=0; i<listE.size(); i++) {
emp = listE.get(i);
// 延迟加载测试,openjpa不支持@Basic(fetch=FetchType.LAZY)
System.out.println(emp.getName());
System.out.println(emp.getTypename());
System.out.println(emp.getListorder());
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
控制台打印:1828
--Hibernate-jpa查询100条记录
@Test// 性能测试-hibernate实现jpa
public void testFind_fetch() {
long start = System.currentTimeMillis();
DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
System.out.println(qt.getTotalrecord());
List<DataDictionary> listE = qt.getResultlist();
DataDictionary emp = null;
for(int i=0; i<listE.size(); i++) {
emp = listE.get(i);
// 字段延迟加载测试,hibernate支持
System.out.println(emp.getName());
System.out.println(emp.getTypename());
System.out.println(emp.getListorder());
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
控制台打印:469
测试结果:
1.都是从相同的数据库中相同的表中取100条记录,openjpa花费时间1828,hibernate-jpa花费时间469,
2.如果是从相同的数据库中取5条记录,openjpa花费时间1703,hibernate-jpa花费时间438,openjpa的成熟度可想而知。
分享到:
相关推荐
OpenJPA是由Apache软件基金会开发的开源JPA实现。它是一个轻量级、高性能的解决方案,设计目标是简化Java应用的持久化层开发。OpenJPA具有良好的可扩展性,支持动态元数据源,允许开发者在运行时调整数据映射。同时...
- 负载测试,模拟大量并发请求,观察JPA在高负载下的表现。 5. **异常处理** - 测试JPA如何处理数据库异常,如UniqueConstraintViolationException(唯一约束违反异常)或OptimisticLockingFailureException...
通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...
而**Hibernate**则是一个实现了JPA规范的开源ORM框架,它简化了数据库操作,使得开发者可以使用Java对象来操作数据库,而无需编写大量的SQL语句。 在**JPA + Hibernate**的例子中,通常会涉及以下几个核心概念: 1...
3. **灵活性**:除了JPA标准之外,Hibernate还提供了许多额外的功能,如性能优化选项、更灵活的映射配置等,这些功能在JPA标准中可能没有涵盖。 #### 三、JPA与Hibernate的关系 JPA和Hibernate之间存在着紧密的...
在标题和描述中提到的"jpa中hibernate实现相关jar包"是指一组完整的Hibernate库,这些库可以帮助开发者在项目中集成JPA和Hibernate,实现对数据库的高效操作。 以下是一些关键的Hibernate JPA相关jar包及其作用: ...
Hibernate是一个流行的JPA实现,它扩展了JPA的功能,提供了更强大的查询能力和性能优化。 **DAO(Data Access Object)模式:** DAO模式是一种设计模式,用于隔离业务逻辑层和数据访问层,使得业务代码不会直接与...
JPA和Hibernate的关系可以概括为:JPA是一个抽象层次,而Hibernate是一个具体的实现。 七、建表过程 建表过程可以分为两种方式: * 先建表:根据数据库表编写配置文件的实体Bean * 先编写文件和实体Bean,然后...
JPA支持多种ORM实现,包括Hibernate、TopLink、OpenJPA等。 **2. JPA与Hibernate的关系** JPA是一个规范,而Hibernate是JPA的一个实现。这意味着你可以使用JPA的API来编写代码,而具体的数据访问逻辑则由Hibernate...
Spring 是一个强大的轻量级应用框架,而 OpenJPA 是一个开源的 Java Persistence API (JPA) 实现,它允许开发者将对象关系映射(ORM)功能无缝集成到应用程序中。在本文中,我们将深入探讨如何将 Spring 框架与 Open...
Hibernate是JPA的一个实现,它是一个强大的ORM框架,提供了更丰富的功能和更好的性能优化。Hibernate不仅支持JPA规范,还提供了一套自己的API,包括 Criteria 查询、HQL(Hibernate查询语言)等,使得数据操作更加...
在提供的压缩包“JPA JAR”中,可能包含了实现JPA的Hibernate库,如hibernate-entitymanager.jar,这个jar包包含了执行JPA操作所需的类和接口。在实际项目中,将这个jar包加入到项目的类路径中,就可以使用Hibernate...
Hibernate不仅实现了JPA规范,还额外提供了一些特性,如二级缓存、更灵活的查询选项和性能优化工具。 **JPA核心概念:** 1. **实体(Entity)**:在JPA中,实体是映射到数据库表的Java类。通过在类上添加`@Entity`...
Hibernate是JPA的一个实现,提供了更丰富的功能和更高的性能。 1. **配置环境** 在项目中引入Hibernate和JPA的相关依赖库,通常是在Maven或Gradle的pom.xml或build.gradle文件中添加依赖。对于MySQL数据库,还需要...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
Hibernate JPA,全称为Hibernate Java Persistence API,是Hibernate组织提供的一种基于Java平台的企业级对象关系映射(ORM)解决方案,它实现了Java Persistence API(JPA),使得Java开发者能够方便地在关系数据库...
OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...
使用这个jar包,开发者可以进行单元测试,验证实体的映射,检查查询的性能,并且可以在多种JPA实现之间切换,以找到最适合项目需求的解决方案。在实际应用中,配合IDE如IntelliJ IDEA或Eclipse,以及Maven或Gradle等...
Hibernate是一个基于JPA规范的开源ORM框架,它不仅实现了JPA规范,还提供了许多超出JPA范围的高级功能。Hibernate以其强大的查询语言(HQL)、缓存机制以及高度的可配置性著称,使其成为Java领域中最受欢迎的持久化...