`
kuangxiangly
  • 浏览: 28847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OpenJPA的基础

阅读更多

       在项目中我们公司用的持久化语言是JPA,周五为了给同事们详细的讲解JPA的相关知识,我写了一个大概提纲,和网友一起分享!

1、  JPA简介—语言JPQL

JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java

EE服务器的支持。Sun这次吸取了之前EJB规范惨痛失败的经历,在充分吸收现

ORM框架的基础上,得到了一个易于使用、伸缩性强的 ORM规范。从目 前的

开发社区的反应上看,JPA受到了极大的支持和赞扬,JPA作为ORM领域标准化

整合者的目标应该不难实现。

JPAEJB 3.0软件专家组开发,作为 JSR-220实现的一部分。但它不囿于EJB

3.0,你可以在 Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久

化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便

开发和测试的理念已经深入人心了。

JPA包括以下 3方面的技术: 

1ORM映射元数据,JPA支持XMLJDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; 

2)、JPA API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBCSQL代码中解脱出来。 

3)、查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

 

 重要的API

JavaEE 5.0中所定义的JPA接口个数并不多,它们位于javax.persistence

javax.persistence.spi两个包中。 javax.persistence包中大部分API都是注解类,除此之

外还包括EntityManagerQuery等持久化操作接口。

EntityManager---实体对象由实体管理器进行管理,JPA使用javax.persistence.EntityManager代表实体管理器。

 

EntityManager的一些主要的接口方法: 

1void persist(Object entity) -----store()

2void remove(Object entity)------remove()

3void flush() -----flush()

 

JPA使用javax.persistence.Query接口代表一个查询实例,接口方法:

1Object getSingleResult():执行SELECT查询语句,并返回一个结果; 

2List getResultList() :执行SELECT查询语句,并返回多个结果;   

3Query setParameter(int position, Object value):通过参数位置号绑定查询语句中的

参数,如果查询语句使用了命令参数,则可以使用Query setParameter(String name,

Object value)方法绑定命名参数;   

4Query setMaxResults(int maxResult):设置返回的最大结果数; 

5int executeUpdate():如果查询语句是新增、删除或更改的语句,通过该方法执行

更新操作;   

 

   以下是JPA中使用的主要组件:

(1) Persistence: javax.persistence.Persistence类包含静态方法用于获得EntityManagerFactory对象。

(2) EntityManagerFactory: javax.persistence.EntityManagerFactory类是创建EntityManager的工厂类。

(3) EntityManager: javax.persistence.EntityManager是应用中主要使用的接口,它主要用于管理持久对象,也用于创建Query 接口。

(4) EntityEntity用于封装持久对象。

(5) EntityTransaction: EntityTransaction 用于封装事务,javax.persistence.EntityTransactionEntityManager之间是一对一的关系。

(6) Query: javax.persistence.Query接口用于持久对象的查询。它支持Java Persistence Query Language (JPQL) Structured Query Language (SQL)

(7) PersistenceException: JPA异常体系的根是PersistenceException,它继承于RuntimeExceptionOpenJPA中抛出的异常都实现了org.apache.openjpa.util.ExceptionInfo接口,用于提供额外的信息。

 

2、  OpenJPAJPA的关系

OpenJPA中大量使用了genericannotation,因此需要使用1.5以上版本的JDK

JPA的总体思想和现有 HibernateTopLinkJDOORM框架大体一致。目前Hibernate 3.2TopLink 10.1.3以及OpenJpa都提供了JPA的实现。

 

 

3、  OpenJPA在项目中的应用

(1)、引入的jar包有:openjpa-1.2.1.jargeronimo-jpa_3.0_spec-1.0.jargeronimo-jta_1.1_spec-1.1.jar;

(2)、为POJO写映射文件*.orm.xml

(3)、在src下面的META-INF下面的persistence.xml中将POJO的映射文件添加进去

       (4)void persist(Object entity) -----store()

void remove(Object entity)------remove()

            void flush() -----flush()

     getNamedQuery(String queryName)---createNamedQuery()

 getNativeQuery(String queryString)--- createNativeQuery()

 getDynamicQuery(String queryString)--- createQuery()

 getNamedUpdate(String queryName)---createNamedQuery()

 

4、  推荐资料

  Apache OpenJPA 2.0 User's Guide.pdf

  ejb-3_0-pfd-spec-persistence.pdf

 

分享到:
评论
1 楼 andey007518 2011-03-09  
多谢了,如果能有个demo,能够快速的看下,岂不是更好,尤其涉及onetomany,manytoone,单向或者双向关系,~~

相关推荐

    openJPA官方手册

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

    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 ...

    通过 WebSphere Application Server V6.1 利用 OpenJPA

    【标题】: 通过WebSphere Application Server V6.1利用OpenJPA 在Java开发领域,持久化数据是一项核心任务,而OpenJPA(Open Java Persistence API)是Apache软件基金会提供的一款开源对象关系映射(ORM)框架,它...

    Openjpa手册

    ### OpenJPA 手册知识点概述 #### 一、OpenJPA 概述 - **定义与背景**:OpenJPA是Apache组织提供的一款开源项目,它实现了Java Persistence API(JPA)规范,该规范源自EJB 3.0中的JPA标准。OpenJPA作为一个持久化...

    JPA连接数据库,非常详细

    总的来说,这个例子展示了如何使用JPA通过Apache OpenJPA连接到Oracle数据库,并进行了基本的日志配置以及`EntityManager`的管理,这些都是在Java应用中进行数据库操作的基础。在实际开发中,这些配置和代码可以作为...

    openjpa2.0英文版API

    ### OpenJPA 2.0 英文版 API 相关知识点 #### 一、简介与背景 **OpenJPA 2.0** 是一款基于 Java ...无论是对于初学者还是经验丰富的开发者来说,掌握 OpenJPA 2.0 的基础知识都将大大提升项目的开发效率和质量。

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    OpenJPA具有良好的可扩展性,支持动态元数据源,允许开发者在运行时调整数据映射。同时,OpenJPA可以与Spring框架和其他开源项目很好地集成,适合大型企业级应用。 **4. JPA批注** JPA批注是定义实体类和其属性与...

    OpenJPAExamples

    OpenJPA基础** OpenJPA的核心功能包括实体管理、查询语言(JPQL)、事务管理以及缓存机制。实体是ORM中的关键概念,它们代表数据库中的表,通过注解或XML配置将对象与数据库表关联起来。例如,在org目录下可能包含...

    OpenJpaExample

    OpenJPAExample项目是一个基础的OpenJPA学习示例,它展示了如何利用OpenJPA进行简单的数据库操作。通过理解OpenJPA的核心特性和工作流程,开发者可以有效地在Java应用中实现ORM,提升开发效率,同时降低与数据库交互...

    基于CORBA和OpenJPA的分布式电力数据整合系统.pdf

    OpenJPA允许开发者不必深入数据库细节,便可以完成数据的存储、查询、更新和删除等操作,从而将注意力集中在业务逻辑的实现上。 CIM(Common Information Model),即公用信息模型,是一种用于电力系统数据建模的...

    OpenJPA Guide

    ### OpenJPA Guide #### 一、概述与文档说明 **OpenJPA**是Apache软件基金会维护的一个开源项目,它提供了对Java Persistence API (JPA) 的实现和支持。本指南旨在帮助开发人员理解和掌握如何使用OpenJPA进行数据...

    JPA基础教程(中文版)

    **JPA基础教程详解** Java Persistence API (JPA) 是Java EE 5.0平台上的一个标准ORM(Object-Relational Mapping)规范,它的引入旨在简化对象持久化的开发过程,并试图统一ORM技术。JPA的设计吸取了之前EJB规范的...

    ejb3.0 jpa

    JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java EE服务器的支持。Sun这次吸取了之前EJB规范惨痛失败的经历,在充分...目前Hibernate 3.2、TopLink 10.1.3以及OpenJpa都提供了JPA的实现。

    JPA整理文档

    - **JPA供应商**:目前市场上有多家供应商提供了JPA的实现,例如**Hibernate**、**TopLink**和**OpenJPA**等。 ### JPA的技术组成 #### 四、JPA的核心技术组成部分 1. **ORM映射元数据**:JPA支持两种元数据形式...

    JPA技术:年初写的办公室OA系统

    ### JPA基础概念 1. **实体(Entity)**: 在JPA中,实体代表数据库表中的记录,通常是一个Java类,通过`@Entity`注解标识。实体类的属性对应于表的列。 2. **实体管理器(EntityManager)**: 是JPA的主要接口,...

    传智播客JPA学习笔记.pdf

    ### JPA基础知识与应用 #### 一、JPA概述 JPA(Java Persistence API)是由Sun Microsystems提出的一种标准,旨在为Java开发人员提供一个统一的对象/关系映射(ORM)解决方案,以简化Java应用程序中对关系型数据库...

    Java学习路线图.pdf

    * Apache Commons/CXF/Shiro/OpenJPA/MINA 基础:掌握 Apache Commons、CXF、Shiro、OpenJPA、MINA 等框架的使用。 * Solr/Lucene/HBase/Hive/Kylin 基础:掌握 Solr、Lucene、HBase、Hive、Kylin 等框架的使用。 * ...

    jpa基础知识

    JPA是规范,而Hibernate、OpenJPA、EclipseLink等是其实现。选择JPA作为持久化层,可以方便地切换不同ORM框架,而无需大量修改代码。 ### 示例代码 ```java @Entity public class User { @Id @GeneratedValue...

    JPA_Basic

    当前,包括Hibernate 3.2、TopLink 10.1.3及OpenJPA在内的多种ORM框架已支持JPA。 #### 二、JPA的关键技术 JPA的核心技术覆盖三个主要方面: 1. **ORM映射元数据**:支持XML和JDK 5.0注解形式,用于描述对象与...

    springboot-多数据源配置 -mybatis-jpa

    至此,你已经具备了在Spring Boot项目中配置多数据源,并结合MyBatis和JPA进行数据操作的基础。在实际开发中,你可能还需要考虑事务管理、数据源切换策略(如读写分离)等问题。通过这种方式,你可以根据业务需求...

Global site tag (gtag.js) - Google Analytics