项目移植到OpenJPA后一直使用都很不错,最近看了http://www.iteye.com/topic/777470受到一些启发,基于自己的项目也做了一下测试。
1、测试代码:
long t1 = System.currentTimeMillis();
qtServ.test();
long t2 = System.currentTimeMillis();
System.out.println("总耗时:" + String.valueOf(t2 - t1));
public void test() {
long t1, t2;
t1 = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
TXx txx = new TXx();
txx.setXxMc("测试名称" + i);
txx.setXxDm("测试代码" + i);
txx.setXxLx("测试类型" + i);
txx.setXxXh(i);
txxDAO.save(txx);
}
t2 = System.currentTimeMillis();
System.out.println("插入10000条记录耗时:" + String.valueOf(t2 - t1));
t1 = System.currentTimeMillis();
List<TXx> ls = txxDAO.findAll();
t2 = System.currentTimeMillis();
System.out.println("查询10000条记录耗时:" + String.valueOf(t2 - t1));
t1 = System.currentTimeMillis();
List<TXx> ls2 = txxDAO.findAll();
t2 = System.currentTimeMillis();
System.out.println("重复查询10000条记录耗时:" + String.valueOf(t2 - t1));
t1 = System.currentTimeMillis();
for (TXx txx : ls) {
TXx t = txxDAO.getByID(txx.getXxId());
}
t2 = System.currentTimeMillis();
System.out.println("逐个查询10000条记录耗时:" + String.valueOf(t2 - t1));
t1 = System.currentTimeMillis();
for (TXx txx : ls) {
txx.setXxMc(txx.getXxMc() + "修改后");
txxDAO.update(txx);
}
t2 = System.currentTimeMillis();
System.out.println("修改10000条记录耗时:" + String.valueOf(t2 - t1));
t1 = System.currentTimeMillis();
for (TXx txx : ls) {
txxDAO.delete(txx);
}
t2 = System.currentTimeMillis();
System.out.println("逐条删除10000条记录耗时:" + String.valueOf(t2 - t1));
}
项目使用JPA2.0,除只是在JPA的实现中使用不同的包,其他完全相同
由于缓存的配置项目不同,不太好做对比,因此本次测试只配置了基础的JPA项目即连接地址、帐号、密码。
项目在Eclipse中以debug模式运行
由于OpenJPA使用了增强,这里用的是在tomcat运行时加入org.springframework.instrument-3.0.3.RELEASE.jar
测试方法,导入项目立刻debug,待tomcat启动完成即开始连续5次测试,将测试结果分别记录
测试结果
分析对比结果
结论:
这个也太协会了,OpenJPA的插入执行效率和Hibernate的查询执行效率也……
个人觉得是不是我的测试构造的不完善,为什么会有这么大的反差,但是多少也说明了OpenJPA执行效率在2.0后有了较高的提升。在项目中开启缓存后从使用情况来看还是不错的。当然我还是觉得这个测试不完善,请高手帮忙解惑……
- 大小: 10.7 KB
- 大小: 4.4 KB
分享到:
相关推荐
包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注
邮箱中有一个bug报告,它报告了在Weblogic server环境中的Hibernate和Kodo之间切换JPA持久性提供者时的一个问题。在再现这个bug的过程中,包括如何在Weblogic Server 10.0中安装Hibernate,以及如何使用一个特定的...
该应用程序的主要目的是将JPA实现从Hibernate模式替换为openjpa。 在此示例中,postgres是选择的数据库,但可以轻松地由任何其他数据库(例如,MySql,Oracle,H2等)替换。加载时间编织已激活通过对源实体类进行...
这是一个工作模板项目,它展示了一个示例多层 J2EE Web 应用程序,其中包含Apache Wicket 、 Spring IoC 、 JPA/Hibernate集成和基于Bootstrap的前端。 它演示了MvC 、 SoC 、 IoC 、 DAO 、 Service layer和Open ...
JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化...目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。
JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java EE服务器的支持。Sun这次吸取了之前EJB规范惨痛失败的经历,在充分...目前Hibernate 3.2、TopLink 10.1.3以及OpenJpa都提供了JPA的实现。
JPA(java persistence api)是JavaEE5.0平台的标准的ORM规范。而Hibernate、TopLink和OpenJPA为JPA的一种实现方式。 本文档主要是对其注解的详细说明。
lb-karaf-examples-jpa 模块: jpa-batoojpa 数据核 jpa-eclipselink jpa-Hibernate jpa-hibernate-noaries jpa-openjpa 参考:
这是 《使用 Spring Data JPA 简化 JPA 开发》的sample code。原文在 http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html
2nd Edition contains a collection of code recipes and templates for learning and building Hibernate solutions for you and your clients, including how to work with the Spring Framework and the JPA....
Beginning Hibernate is ideal if you’re experienced in Java with databases (the traditional, or connected, approach), but new to open-source, lightweight Hibernate. The book keeps its focus on ...
这个 API 有不同的实现:EclipseLik、Hibernate、TopLink、OpenJPA、...... API 提供类似于 SQL 的查询语言,但使用对象而不是数据库中的关系实体。 Java Persistence API 基于实体,这些实体是简单的带注释的 POJO...
Learn how to use the core Hibernate APIs and tools as part of the Spring Framework. This book illustrates how these two frameworks can be best utilized. Other persistence solutions available in Spring...
ActiveJPA使用到了JPA规范,因此所有JPA的ORM实现(Hibernate、EclipseLink、OpenJPA等)都可以与ActiveJPA协同使用。 示例代码: // Get order by id Order order = Order.findById(12345L); // Get all...
Hibernate Object/Grid Mapper (OGM) aims at providing Java Persistence (JPA) support for NoSQL solutions. It reuses Hibernate Core's engine but persists entities into a NoSQL data store instead of a ...
Drools6 #####Resource Layer DAO:默认:Hibernate + ehcache,可选:OpenJPA 数据库: MySQL如何设置ENV maven3.0+安装在你的环境中git安装在你的环境中mysql 已安装,在 UTF8 中工作,并使用 root 用户和空密码...
MyEclipse 10 使用高级桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0. 而对 IBM WebSphere 用户来说,MyEclipse Blue 支持最新版本的 WebSphere Portal ...
看: querydsl-jpa:使用Spring MVC和Spring Boot开发的Java Web应用程序,演示了如何使用QueryDSL和JPA / Hibernate。 使用的数据库是HSQLDB。 前端是使用JQuery和Foundation开发的。 querydsl-spring-data:使用...
在JAVA中的持久性[JPA实现比较:Hibernate,Toplink Essentials,Openjpa,Eclipselink]( )
RESTfulExampleJAX-RS 使用各种Java EE技术创建RESTful Web服务的示例项目。 生产服务已部署到GlassFish 4.1,并使用与MySQL数据库关联的... 备用包括Hibernate , OpenJPA等。 EclipseLink MOXy:通过jaxb.properti