JPA 之 深入浅出--概述讲解

    xiaoxiao2021-03-25  58

    .什么是JPA

                   JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口.JPAEJB3.0规范的一部分,JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立的运行,开发和测试变得更加方便.

                   JPA提供了以POJO编程模型为持久化对象的机制;通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.JPA的结构如下所示:

    .JPA的产生

     JPASUN引入的.那么SUN为什么要引入新的JPA ORM规范呢.主要是处于两个原因:

    其一:简化现有Java EEJava SE应用的对象持久化的开发工作:

                    *和实体Bean相比,需要配置文件,提供了更好的开发体验

                   *不用于EJB3.0,JPA不依赖J2EE容器,java中的通用API.

    其二.Sun希望整合ORM技术,统一各种ORM框架的规范,实现天下统一.目前Hibenate3.2已经提供了JPA的实现.

    .为什么要使用JPA

                   咱们都知道持久化的作用是处理复杂的业务逻辑,减少重复代码.如果你写过复杂的应用,就会发现用JDBC要处理大量地处理字符串,而且直接使用JDBC字符串处理特别容易导致SQL注入漏洞,如果直接使用框架就可以省去这些麻烦.更加专注于业务逻辑.JPA的出现就是为了制定一个持久化的标准.

     

    .JAPhibernate存在什么关系

                   JPAhibernate的一个抽象或者接口,JPAhibernate的关系就犹如JDBCJDBC驱动的关系.

    JPA是一种规范:JPA本质上就是一种ORM规范,不要误以为是ORM框架.因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口但具体实现则由用服务器厂商提供.

    hibernate是具体实现,hibernate除了作为ORM框架之外,它也是一种JPA实现.

    从功能上来说,我更加愿意理解JPAhibernate功能的一个子集.

    .JPA的优缺点

    优点:

           (1)标准化

           (2)对容器级特性的支持:JPA框架中支持大数据集,事务,并发等容器级事务.

           (3)简单易用,集成方便:JPA的主要目标之一就是提供更加简单的编程模型.

           (4)JDBC的查询能力不分上下:JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改.

           (5)支持面向对象的高级特性:JPA中能够支持面向对象的高级特性.

    缺点:

           (1)由于出来的时间不是特别长,在技术上还不是特别的稳定.

           (2)JPA是一种规范不是一种产品,需要提供商提供一个实施,才能获得这些基于标准的API优势.

           (3)JPAhibernateORM框架爱真子集,只提供其中最好的功能,如果应用程序中需要的功能,但是规范中没有提供的功能,则使用供应商特有的API,导致移植性减弱.

    .主要技术

    (1)ORM映射元数据

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

    (2)JPAAPI

                   API在哪里都是常用常见的.在最初学习的VB中都有API的存在.JPA中再次见到API,从而可见API的强大.此处的API用来操作实体对象,执行CRUD操作,框架在后台代替我们完成所有的事情,把开发者从繁琐的JDBCSQL代码中解脱出来.

    (3)查询语言

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

     

                   学习还得从宏观下手,大概了解这个内容的来龙去脉和精髓,在深入学习内涵.就如要了解JPA这东西,就需要和以前学习过的hibernateSQL ,API联系起来,那么就会变得简单了,理解起来就快了.学习要从宏观出发,在去寻找能产生共鸣的某个知识点.往下还会继续给大家介绍关于JPA的内容

    转载请注明原文地址: https://ju.6miu.com/read-40294.html

    最新回复(0)