乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      OpenJPA的基礎(chǔ)

       燮羽 2010-10-25

       在項目中我們公司用的持久化語言是JPA,周五為了給同事們詳細(xì)的講解JPA的相關(guān)知識,我寫了一個大概提綱,和網(wǎng)友一起分享!


      1、
        
      JPA
      簡介—語言JPQL

      JPA(Java Persistence API)作為Java EE 5.0平臺標(biāo)準(zhǔn)的ORM規(guī)范,將得到所有Java

      EE服務(wù)器的支持。Sun這次吸取了之前EJB規(guī)范慘痛失敗的經(jīng)歷,在充分吸收現(xiàn)

      ORM框架的基礎(chǔ)上,得到了一個易于使用、伸縮性強的 ORM規(guī)范。從目 前的

      開發(fā)社區(qū)的反應(yīng)上看,JPA受到了極大的支持和贊揚,JPA作為ORM領(lǐng)域標(biāo)準(zhǔn)化

      整合者的目標(biāo)應(yīng)該不難實現(xiàn)。

      JPAEJB 3.0軟件專家組開發(fā),作為 JSR-220實現(xiàn)的一部分。但它不囿于EJB

      3.0,你可以在 Web應(yīng)用、甚至桌面應(yīng)用中使用。JPA的宗旨是為POJO提供持久

      化標(biāo)準(zhǔn)規(guī)范,由此可見,經(jīng)過這幾年的實踐探索,能夠脫離容器獨立運行,方便

      開發(fā)和測試的理念已經(jīng)深入人心了。

      JPA包括以下 3方面的技術(shù): 

      1ORM映射元數(shù)據(jù),JPA支持XMLJDK 5.0注解兩種元數(shù)據(jù)的形式,元數(shù)據(jù)描述對象和表之間的映射關(guān)系,框架據(jù)此將實體對象持久化到數(shù)據(jù)庫表中; 

      2)、JPA API,用來操作實體對象,執(zhí)行CRUD操作,框架在后臺替我們完成所有的事情,開發(fā)者從繁瑣的JDBCSQL代碼中解脫出來。 

      3)、查詢語言,這是持久化操作中很重要的一個方面,通過面向?qū)ο蠖敲嫦驍?shù)據(jù)庫的查詢語言查詢數(shù)據(jù),避免程序的SQL語句緊密耦合。

       

       重要的API

      JavaEE 5.0中所定義的JPA接口個數(shù)并不多,它們位于javax.persistence

      javax.persistence.spi兩個包中。 javax.persistence包中大部分API都是注解類,除此之

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

      EntityManager---實體對象由實體管理器進(jìn)行管理,JPA使用javax.persistence.EntityManager代表實體管理器。

       

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

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

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

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

       

      JPA使用javax.persistence.Query接口代表一個查詢實例,接口方法:

      1Object getSingleResult():執(zhí)行SELECT查詢語句,并返回一個結(jié)果; 

      2List getResultList() :執(zhí)行SELECT查詢語句,并返回多個結(jié)果;   

      3Query setParameter(int position, Object value):通過參數(shù)位置號綁定查詢語句中的

      參數(shù),如果查詢語句使用了命令參數(shù),則可以使用Query setParameter(String name,

      Object value)方法綁定命名參數(shù);   

      4Query setMaxResults(int maxResult):設(shè)置返回的最大結(jié)果數(shù); 

      5int executeUpdate():如果查詢語句是新增、刪除或更改的語句,通過該方法執(zhí)行

      更新操作;   

       

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

      (1) Persistence: javax.persistence.Persistence類包含靜態(tài)方法用于獲得EntityManagerFactory對象。

      (2) EntityManagerFactory: javax.persistence.EntityManagerFactory類是創(chuàng)建EntityManager的工廠類。

      (3) EntityManager: javax.persistence.EntityManager是應(yīng)用中主要使用的接口,它主要用于管理持久對象,也用于創(chuàng)建Query 接口。

      (4) Entity。Entity用于封裝持久對象。

      (5) EntityTransaction: EntityTransaction 用于封裝事務(wù),javax.persistence.EntityTransactionEntityManager之間是一對一的關(guān)系。

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

      (7) PersistenceException: JPA異常體系的根是PersistenceException,它繼承于RuntimeExceptionOpenJPA中拋出的異常都實現(xiàn)了org.apache.openjpa.util.ExceptionInfo接口,用于提供額外的信息。

       

      2、  OpenJPAJPA的關(guān)系

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

      JPA的總體思想和現(xiàn)有 HibernateTopLink,JDOORM框架大體一致。目前Hibernate 3.2、TopLink 10.1.3以及OpenJpa都提供了JPA的實現(xiàn)。

       

       

      3、  OpenJPA在項目中的應(yīng)用

      (1)、引入的jar包有:openjpa-1.2.1.jar、geronimo-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的映射文件添加進(jìn)去

             (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

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多