JPA学习笔记一——概述

时间:2024-01-22 11:32:55
  • JPA是什么

    Java Persistence API:用于对象持久化的API
    JavaEE5.0平台标准的ORM规范,使得应用程序以统一的方式访问持久层
  • JPA与Hibernate的关系


    JPA是Hibernate的的一个抽象(类似JDBC与JDBC驱动的关系):JPA是规范,Hibernate是实现
    从功能上来说,JPA是Hibernate功能的一个子集

     

     

  • JPA的供应商

    • JPA的目标是指定一个可以由很多供应商实现的API,目前Hibernate3.2+、TopLink10.1+以及OpenJPA都提供了JPA的实现
      • Hibernate:JPA的始作俑者就是hibernate作者,从3.2开始兼容JPA
      • OpenJPA:是Apache组织提供的开源项目
      • TopLink:以前收费,现在开源
  • JPA的优势

    • 标准化:
      提供相同的API,保证了基于JPA开发的企业应用能够经过少量的修改就能在不同的JPA框架下运行
    • 简单易用、集成方便:
      JPA的主要目标就是提供更加简单的编程模型,在JPA框架下创建实体和创建Java类一样简单,只需要使用javax.persistence.Entity进行注释;Jpa的框架和接口也非常简单
    • 可媲美JDBC的查询能力:
      JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING等通常只有SQL才能提供的高级查询特性,甚至还能够支持子查询
    • 支持面向对象的高级特性:
      JPA中能够支持面向对象的高级特性,如类的继承、多态和类之间的复杂关系,最大限度的使用面向对象的模型
  • JPA包括的技术

    • ORM映射元数据:
      JPA支持XML和JDK5.0注解两种元数据形式,元数据描述对象和表之间的映射关系,框架据此将实体化对象持久化到数据库表中
    • JPA的API:
      用来操作实体对象,执行CRUD操作,框架在后台完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来
    • 查询语言(JPQL):
      这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序和具体的SQL紧密耦合