maven pom.xml :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tch.test</groupId> <artifactId>openjpa</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>openjpa</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.3-1102-jdbc41</version> </dependency> </dependencies> </project>
src/main/resources 创建META-INF文件夹,创建persistence.xml :
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <persistence-unit name="openjpa" transaction-type="RESOURCE_LOCAL"> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <class>com.tch.test.openjpa.Point</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/postgres" /> <property name="javax.persistence.jdbc.user" value="postgres" /> <property name="javax.persistence.jdbc.password" value="postgres" /> <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" /> <property name="openjpa.jdbc.DBDictionary" value="postgres(SearchStringEscape=#)" /> <property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=WARN, Tool=INFO, SQL=info" /> </properties> </persistence-unit> </persistence>
然后创建实体类:
package com.tch.test.openjpa; import java.io.Serializable; import javax.persistence.*; @Entity public class Point implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private long id; private int x; private int y; public Point() { } Point(int x, int y) { this.x = x; this.y = y; } public Long getId() { return id; } public int getX() { return x; } public int getY() { return y; } @Override public String toString() { return String.format("(%d, %d)", this.x, this.y); } }
测试:
package com.tch.test.openjpa; import javax.persistence.*; import java.util.*; public class Main { private static EntityManager em; private static EntityManagerFactory emf; static { // Open a database connection emf = Persistence.createEntityManagerFactory("openjpa"); em = emf.createEntityManager(); } public static void main(String[] args) { try{ batchSave(); getCount(); typedQuery(); clearTable(); }catch(Exception e){ e.printStackTrace(); }finally{ // Close the database connection: em.close(); emf.close(); } } private static void clearTable() { em.getTransaction().begin(); em.createQuery("delete from Point").executeUpdate(); em.getTransaction().commit(); } private static void typedQuery(){ // Retrieve all the Point objects from the database: TypedQuery<Point> query = em.createQuery("SELECT p FROM Point p", Point.class); List<Point> results = query.setMaxResults(10).getResultList(); System.out.println(results.size()); } private static void batchSave(){ long startTime = System.currentTimeMillis(); // Store 1000 Point objects in the database: em.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Point p = new Point(i, i); em.persist(p); } em.getTransaction().commit(); System.out.println((System.currentTimeMillis()-startTime)+"ms"); } private static void getCount(){ // Find the number of Point objects in the database: Query q1 = em.createQuery("SELECT COUNT(p) FROM Point p"); System.out.println("Total Points: " + q1.getSingleResult()); } }
OK
相关推荐
OpenJPA支持多种数据库,包括Oracle、MySQL、PostgreSQL等,并且提供了性能优化和事务管理等功能。 **三、Spring与OpenJPA集成** 1. **配置OpenJPA** 首先,需要在项目的pom.xml文件中添加OpenJPA和Spring的依赖...
OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...
默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...
OpenJPA OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写...
OpenJPA,全称Open Java Persistence API,是Apache软件基金会的一个开源项目,它实现了Java持久化API(Java Persistence API,JPA),为Java开发者提供了一种标准的方式来管理和持久化应用程序中的对象。...
OpenJPA提供了诸如实体管理、事务处理、查询优化等核心ORM功能,并且与常见的Java应用服务器如Tomcat、WebLogic等兼容良好,也支持多种数据库系统,如MySQL、Oracle、PostgreSQL等。 描述中提到的“博文链接:...
OpenJPA2是一个开源的对象关系映射(ORM)框架,它是Java Persistence API(JPA)规范的实现。在这个“Open JPA2 employee简单例子”中,我们将深入理解如何使用OpenJPA2来处理数据库中的员工数据。这个示例将帮助...
jpa从入门到放弃,你值得拥有!!!!!
'SpringDataJPA从入门到精通'以SpringBoot为技术基础 从入门到精通 由浅入深地介绍SpringDataJPA的使用。有语法 有实践 有原理剖析。'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、...
**OpenJPA**(Open Java Persistence API)是Apache软件基金会的一个开源项目,它是Java持久层规范JPA(Java Persistence API)的实现,用于处理对象关系映射(ORM)。OpenJPA提供了一个框架,使得Java对象可以直接...
OpenJPA(Java Persistence API)则是Java平台上的一个ORM(对象关系映射)工具,它实现了JSR-317规范,使得开发者可以方便地在Java应用程序中操作数据库。本篇将详细讲解如何在Spring项目中集成并使用OpenJPA。 ...
8. **数据库支持**:OpenJPA支持多种数据库,包括Oracle、MySQL、PostgreSQL、SQL Server等,只需配置相应的JDBC驱动即可。 9. **集成框架**:OpenJPA可与Spring、Hibernate等流行框架无缝集成,进一步丰富了开发者...
安装OpenJPA的步骤通常包括下载OpenJPA的jar文件,将其添加到服务器的类路径中,并在服务器配置中指定OpenJPA作为默认的持久化提供者。 接下来,我们需要创建一个JPA项目。这涉及定义实体类,这些类代表数据库中的...
### OpenJPA官方手册知识点概览 #### 一、引言 - **OpenJPA**:作为Apache项目的一部分,OpenJPA是一个开源的Java持久化框架(Java Persistence Framework),它支持Java Persistence API (JPA) 的规范。OpenJPA...
Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...
OpenJPA API 文档 chm格式
### Apache OpenJPA 2.1 用户指南:Java Persistence API 的深入解析 #### 一、简介 Apache OpenJPA 2.1 是基于 Sun Microsystems 的 Java Persistence 2.0 API (JSR-317 JPA 2.0) 规范实现的一种透明持久化 Java ...