JPA深度劉寶寶剖析版

劉寶寶講解開始了。。。。。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供泰安網(wǎng)站建設(shè)、泰安做網(wǎng)站、泰安網(wǎng)站設(shè)計(jì)、泰安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、泰安企業(yè)網(wǎng)站模板建站服務(wù),十載泰安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

第一講 JPA介紹

JPA

1.JPA的概念:
    Java Persistence API:用于對(duì)象持久化的 API
    Java EE 5.0 平臺(tái)標(biāo)準(zhǔn)的 ORM 規(guī)范,使得應(yīng)用程序以統(tǒng)一的方式訪問持久層

2.JPA和hibernate的關(guān)系
    從功能上來(lái)說(shuō), JPA 是 Hibernate 功能的一個(gè)子集

3.JPA的優(yōu)勢(shì):
    標(biāo)準(zhǔn)化:  提供相同的 API,這保證了基于JPA 開發(fā)的企業(yè)應(yīng)用能夠經(jīng)過少量的修改就能夠在不同的 JPA 框架下運(yùn)行。
    簡(jiǎn)單易用,集成方便:  JPA 的主要目標(biāo)之一就是提供更加簡(jiǎn)單的編程模型,在 JPA 框架下創(chuàng)建實(shí)體和創(chuàng)建 Java  類一樣簡(jiǎn)單,只需要使用 javax.persistence.Entity 進(jìn)行注釋;JPA 的框架和接口也都非常簡(jiǎn)單,
    可媲美JDBC的查詢能力:  JPA的查詢語(yǔ)言是面向?qū)ο蟮?,JPA定義了獨(dú)特的JPQL,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級(jí)查詢特性,甚至還能夠支持子查詢。
    支持面向?qū)ο蟮母呒?jí)特性: JPA 中能夠支持面向?qū)ο蟮母呒?jí)特性,如類之間的繼承、多態(tài)和類之間的復(fù)雜關(guān)系,最大限度的使用面向?qū)ο蟮哪P?br />    
4.JPA 包括 3方面的技術(shù)
    ORM  映射元數(shù)據(jù):JPA 支持 XML 和  JDK 5.0 注解兩種元數(shù)據(jù)的形式,元數(shù)據(jù)描述對(duì)象和表之間的映射關(guān)系,框架據(jù)此將實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)表中。  
    JPA 的 API:用來(lái)操作實(shí)體對(duì)象,執(zhí)行CRUD操作,框架在后臺(tái)完成所有的事情,開發(fā)者從繁瑣的 JDBC和 SQL代碼中解脫出來(lái)。  
    查詢語(yǔ)言(JPQL):這是持久化操作中很重要的一個(gè)方面,通過面向?qū)ο蠖敲嫦驍?shù)據(jù)庫(kù)的查詢語(yǔ)言查詢數(shù)據(jù),避免程序和具體的  SQL 緊密耦合。
        

1.persistence.xml 文件是固定的
2.當(dāng)spring和hibernate整合的時(shí)候,這個(gè)persistence.xml就可以不要了,也可以放著

3.persistence.xml
    <persistence-unit name="jpa-1" transaction-type="RESOURCE_LOCAL">
        
        <!--
        配置什么ORM產(chǎn)品 來(lái)作為  JPA的實(shí)現(xiàn)
        1.實(shí)際上配置的是 javax.persistence.spi.PersistenceProvider這個(gè)接口的實(shí)現(xiàn)類
        2.當(dāng)JPA中只有一個(gè)JPA項(xiàng)目,可以選擇配置該節(jié)點(diǎn),也可以選擇不配置該節(jié)點(diǎn)
         -->
        <!-- provider:提供者 -->
        <!-- 打開OpenType的快捷鍵Ctrl+Shift+t ,找到HibernatePersistence.class -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        
        <!-- 添加持久化類 -->
        <class>com.baidu.jpa.helloworld.Customer</class>
        
        <properties>
            <!-- 連接數(shù)據(jù)庫(kù)的基本信息-->
            <property name="javax.persistence.jdbc.driver" value="com.MySQL.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>
            <!-- 配置JPA 實(shí)現(xiàn)產(chǎn)品的基本屬性/配置hibernate的基本屬性 -->
            
            <!-- 格式化sql -->
            <property name="hibernate.format_sql" value="true"/>
            <!-- 在控制臺(tái)自動(dòng)顯示sql -->
            <property name="hibernate.show_sql" value="true"/>
            <!-- 生成數(shù)據(jù)表格策略 -->
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
    

第二講 JPA工程創(chuàng)建步驟

1.創(chuàng)建數(shù)據(jù)庫(kù)名
2.創(chuàng)建一個(gè)jpa project  選擇2.0
3.創(chuàng)建一個(gè)lib文件  add Build Path
    antlr-2.7.7.jar
    dom4j-1.6.1.jar
    ehcache-core-2.4.3.jar
    hibernate-commons-annotations-4.0.2.Final.jar
    hibernate-core-4.2.4.Final.jar
    hibernate-ehcache-4.2.4.Final.jar
    hibernate-entitymanager-4.2.4.Final.jar
    hibernate-jpa-2.0-api-1.0.1.Final.jar
    javassist-3.15.0-GA.jar
    jboss-logging-3.1.0.GA.jar
    jboss-transaction-api_1.1_spec-1.0.1.Final.jar
    mysql-connector-java-5.1.7-bin.jar
    slf4j-api-1.6.1.jar
4. persistence.xml  
    
            <!-- 連接數(shù)據(jù)庫(kù)的基本信息-->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>

            <!-- 配置JPA 實(shí)現(xiàn)產(chǎn)品的基本屬性/配置hibernate的基本屬性 -->
            
            <!-- 格式化sql -->
            <property name="hibernate.format_sql" value="true"/>
            <!-- 在控制臺(tái)自動(dòng)顯示sql -->
            <property name="hibernate.show_sql" value="true"/>
            <!-- 生成數(shù)據(jù)表格策略 -->
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            
5.創(chuàng)建包名com.baidu.jpa
    
    創(chuàng)建持久化類 、實(shí)體類
    
    @Entity
    @Table(name="表名")
    
    @Id
    @@GeneratedValue(strategy=GenerationType.AUTO)
        
6.去配置文件,添加持久化類
    <!-- 添加持久化類 -->
        <class>com.baidu.jpa.helloworld.Customer</class>    
        
7.創(chuàng)建一個(gè)main方法類

        //1.創(chuàng)建 EntitymanagerFactory
        //persistenceUnitName 持久化單元名字
        String persistenceUnitName = "jpa-1";
        EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName);
        
        //2.創(chuàng)建 EntityManager
        
        EntityManager em = emf.createEntityManager();
        
        //3.開啟事務(wù)
        
        EntityTransaction et = em.getTransaction();
        et.begin();
        //4.進(jìn)行持久化操作
        
        Customer c = new Customer();
        c.setAge(12);
        c.setEmail("123@qq.com");
        c.setLastName("張三");
        
        em.persist(c); //保存
        
        //5.提交事務(wù)
        
        et.commit();
        
        //6.關(guān)閉EntityManager
        
        em.close();
        
        //7.關(guān)閉EntityManagerFactory
        
        emf.close();
           

網(wǎng)頁(yè)題目:JPA深度劉寶寶剖析版
URL分享:http://muchs.cn/article0/gddcoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、虛擬主機(jī)、網(wǎng)站排名、自適應(yīng)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)