`
dreamoftch
  • 浏览: 495364 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

openjpa postgresql入门

阅读更多

 

 

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

 

 

 

 

分享到:
评论

相关推荐

    Spring和openJPA集成

    OpenJPA支持多种数据库,包括Oracle、MySQL、PostgreSQL等,并且提供了性能优化和事务管理等功能。 **三、Spring与OpenJPA集成** 1. **配置OpenJPA** 首先,需要在项目的pom.xml文件中添加OpenJPA和Spring的依赖...

    openjpa 写的一个例子

    OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...

    openjpa范例及实例工程

    默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...

    OpenJPA 2.2.1 API (CHM格式)

    OpenJPA  OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写...

    openjpa 源码 下载 帮助开发人员调试

    OpenJPA,全称Open Java Persistence API,是Apache软件基金会的一个开源项目,它实现了Java持久化API(Java Persistence API,JPA),为Java开发者提供了一种标准的方式来管理和持久化应用程序中的对象。...

    openJpa的应用,感觉还可以

    OpenJPA提供了诸如实体管理、事务处理、查询优化等核心ORM功能,并且与常见的Java应用服务器如Tomcat、WebLogic等兼容良好,也支持多种数据库系统,如MySQL、Oracle、PostgreSQL等。 描述中提到的“博文链接:...

    Open JPA2 employee 简单例子

    OpenJPA2是一个开源的对象关系映射(ORM)框架,它是Java Persistence API(JPA)规范的实现。在这个“Open JPA2 employee简单例子”中,我们将深入理解如何使用OpenJPA2来处理数据库中的员工数据。这个示例将帮助...

    JPA从入门到精通

    jpa从入门到放弃,你值得拥有!!!!!

    Spring Data JPA从入门到精通

    'SpringDataJPA从入门到精通'以SpringBoot为技术基础 从入门到精通 由浅入深地介绍SpringDataJPA的使用。有语法 有实践 有原理剖析。'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、...

    jsf、openJpa学习

    **OpenJPA**(Open Java Persistence API)是Apache软件基金会的一个开源项目,它是Java持久层规范JPA(Java Persistence API)的实现,用于处理对象关系映射(ORM)。OpenJPA提供了一个框架,使得Java对象可以直接...

    Spring中使用OpenJPA

    OpenJPA(Java Persistence API)则是Java平台上的一个ORM(对象关系映射)工具,它实现了JSR-317规范,使得开发者可以方便地在Java应用程序中操作数据库。本篇将详细讲解如何在Spring项目中集成并使用OpenJPA。 ...

    openjpa jar

    8. **数据库支持**:OpenJPA支持多种数据库,包括Oracle、MySQL、PostgreSQL、SQL Server等,只需配置相应的JDBC驱动即可。 9. **集成框架**:OpenJPA可与Spring、Hibernate等流行框架无缝集成,进一步丰富了开发者...

    通过 WebSphere Application Server V6.1 利用 OpenJPA

    安装OpenJPA的步骤通常包括下载OpenJPA的jar文件,将其添加到服务器的类路径中,并在服务器配置中指定OpenJPA作为默认的持久化提供者。 接下来,我们需要创建一个JPA项目。这涉及定义实体类,这些类代表数据库中的...

    openJPA官方手册

    ### OpenJPA官方手册知识点概览 #### 一、引言 - **OpenJPA**:作为Apache项目的一部分,OpenJPA是一个开源的Java持久化框架(Java Persistence Framework),它支持Java Persistence API (JPA) 的规范。OpenJPA...

    Spring MVC+OpenJPA框架

    Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...

    OpenJPA API 文档 chm格式

    OpenJPA API 文档 chm格式

    Apache OpenJPA 2.1 User's Guide

    ### Apache OpenJPA 2.1 用户指南:Java Persistence API 的深入解析 #### 一、简介 Apache OpenJPA 2.1 是基于 Sun Microsystems 的 Java Persistence 2.0 API (JSR-317 JPA 2.0) 规范实现的一种透明持久化 Java ...

Global site tag (gtag.js) - Google Analytics