JPA 深度刘宝宝剖析版
admin
2023-05-28 19:21:38
0

刘宝宝讲解开始了。。。。。

第一讲 JPA介绍

JPA

1.JPA的概念:
    Java Persistence API:用于对象持久化的 API
    Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层

2.JPA和hibernate的关系
    从功能上来说, JPA 是 Hibernate 功能的一个子集

3.JPA的优势:
    标准化:  提供相同的 API,这保证了基于JPA 开发的企业应用能够经过少量的修改就能够在不同的 JPA 框架下运行。
    简单易用,集成方便:  JPA 的主要目标之一就是提供更加简单的编程模型,在 JPA 框架下创建实体和创建 Java  类一样简单,只需要使用 javax.persistence.Entity 进行注释;JPA 的框架和接口也都非常简单,
    可媲美JDBC的查询能力:  JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
    支持面向对象的高级特性: JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,最大限度的使用面向对象的模型
    
4.JPA 包括 3方面的技术
    ORM  映射元数据:JPA 支持 XML 和  JDK 5.0 注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。  
    JPA 的 API:用来操作实体对象,执行CRUD操作,框架在后台完成所有的事情,开发者从繁琐的 JDBC和 SQL代码中解脱出来。  
    查询语言(JPQL):这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序和具体的  SQL 紧密耦合。
        

1.persistence.xml 文件是固定的
2.当spring和hibernate整合的时候,这个persistence.xml就可以不要了,也可以放着

3.persistence.xml
    
        
        
        
        
        org.hibernate.ejb.HibernatePersistence
        
        
        com.baidu.jpa.helloworld.Customer
        
        
            
            
            
            
            
            
            
            
            
            
            
            
            
        

    

    

第二讲 JPA工程创建步骤

1.创建数据库名
2.创建一个jpa project  选择2.0
3.创建一个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  
    
            
            
            
            
            

            
            
            
            
            
            
            
            
            
5.创建包名com.baidu.jpa
    
    创建持久化类 、实体类
    
    @Entity
    @Table(name="表名")
    
    @Id
    @@GeneratedValue(strategy=GenerationType.AUTO)
        
6.去配置文件,添加持久化类
    
        com.baidu.jpa.helloworld.Customer    
        
7.创建一个main方法类

        //1.创建 EntitymanagerFactory
        //persistenceUnitName 持久化单元名字
        String persistenceUnitName = "jpa-1";
        EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName);
        
        //2.创建 EntityManager
        
        EntityManager em = emf.createEntityManager();
        
        //3.开启事务
        
        EntityTransaction et = em.getTransaction();
        et.begin();
        //4.进行持久化操作
        
        Customer c = new Customer();
        c.setAge(12);
        c.setEmail("123@qq.com");
        c.setLastName("张三");
        
        em.persist(c); //保存
        
        //5.提交事务
        
        et.commit();
        
        //6.关闭EntityManager
        
        em.close();
        
        //7.关闭EntityManagerFactory
        
        emf.close();
           



相关内容

热门资讯

“婚外胚胎案”原配朱女士回应胚... 近日,“患癌妻子申请销毁丈夫婚外胚胎遭拒案”持续引发关注。就在昨天(8月5日)下午,“患癌妻子朱女士...
马克龙称欧盟及其伙伴将继续加大... 【环球网报道 记者 张江平】据俄罗斯《共青团真理报》报道,对于法国总统马克龙发表关于加大向俄罗斯施压...
韩国外长称将为重启韩朝对话创造... 据凤凰卫视报道,韩国外交部长官赵显8月5日总统工作报告后召开记者会。有关朝鲜问题,他表示,为奠定半岛...
比矿泉水还轻的12英寸平板:华... 【环球网科技报道 记者 张阳】平板电脑市场近年来的发展并不乐观,据国际数据公司(IDC)预测,202...
“一箭双星” 捷龙三号海上发射... 封面新闻记者 边雪 8月5日10时38分,捷龙三号运载火箭在山东海阳附近海域点火升空,随后以“一箭双...
这届AI办公,名字比产品还难用 头图及封面来源 | GPT ChatGPT Work、Claude Cowork、Microsoft...
2026年8月12日地球将失去... 今年早些时候,一则“2026年8月12日地球将失重7秒、数千万人因此伤亡”的所谓“末日警告”在网络热...
卫生间水电改造完成后期要装小背... 小背篓是一种安装在卫生间的散热器,通常用于提供额外的加热和烘干功能。是否在卫生间水电改造完成后期安装...
卫丽净智能马桶盖水不能加热 卫丽净智能马桶盖水不能加热可能有多种原因,以下是一些可能的解决方法:1. 检查电源:确保马桶盖的电源...