java-jpa(Java Persistence API)初识,

java-jpa(Java Persistence API)初识

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

JPA和Hibernate的关系:

JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):

JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现 Hibernate 是实现:Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现

从功能上来说, JPA 是 Hibernate 功能的一个子集

JPA 的供应商:

JPA 的目标之一是制定一个可以由很多供应商实现的 API,目前Hibernate 3.2+、TopLink 10.1+ 以及 OpenJPA 都提供了 JPA 的实现

Hibernate:JPA 的始作俑者就是 Hibernate 的作者, Hibernate 从 3.2 开始兼容 JPA OpenJPA :OpenJPA 是 Apache 组织提供的开源项目 TopLink: TopLink 以前需要收费,如今开源了

JPA的优势:

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

JPA 包括 3方面的技术:

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

使用JPA持久化对象的步骤:

创建 persistence.xml, 在这个文件中配置持久化单元 需要指定跟哪个数据库进行交互; 需要指定 JPA 使用哪个持久化的框架以及配置该框架的基本属性; 创建实体类, 使用 annotation 来描述实体类跟数据库表之间的映射关系; 使用 JPA API 完成数据增加、删除、修改和查询操作:1) 创建 EntityManagerFactory (对应 Hibernate 中的 SessionFactory);2) 创建 EntityManager (对应 Hibernate 中的Session);

java persistence,java-jpa(Java Persistence API)初识,相关推荐

  1. bug日志:报错 java:程序包javax.persistence.criteria不存在,解决!

    bug日志:报错 java:程序包javax.persistence.criteria不存在,解决! 首先上报错图片: 排查问题:按住ctrl用鼠标左键点击框中javax可看到如下图显示 该jar包中 ...

  2. java方法criterion_java – JPA Criteria谓词条件

    首先,您必须考虑以分层方式重新构建应用程序.您至少需要3层,DAO,服务和WebService. 有关数据库和JPA的所有内容都必须位于DAO层中.所有与json相关的东西都必须在你的WebServi ...

  3. java EE中JPA介绍

    全称是:Java Persistence API (java 持久化应用接口),是由sun公司带头制定的.由于目前有很多java持久层的框架,比如Hibernate.TopLink.OpeanJPA等 ...

  4. Java笔记-使用jpa连接mysql数据库

    目录 基本概念 代码与实例 基本概念 此处的基本概念来至于:https://www.cnblogs.com/yunche/p/10279324.html JPA(Java Persistence AP ...

  5. Java工作笔记-JPA查询达梦7数据库(Spring Boot + ORM)

    目录 基本概念 代码与实例 存在的坑 基本概念 使用JPA可以简化编程,并且可以不变代码,直接换其他数据库,比如,现在要把数据库换成达梦的. 首先把达梦安装好: 这里可以看到方言什么都有,现在来看看那 ...

  6. SpringBoot项目入门,前端thymeleaf,后端Java,数据库Jpa+MySQL

    1.创建SpringBoot项目 1.选择Sping项目初始化 2.选择服务器 国外通常是:https://start.spring.io 国内通常是:https://start.aliyun.com ...

  7. 在使用 eclipse 时, eclipse 的右下角 一直在提示 “JPA java change event handler” ,eclipse使用起来很卡,解决办法

    问题描述: 在使用 eclipse时, eclipse 的右下角 一直在提示 "JPA java change event handler"  eclipse使用起来很卡, 原因: ...

  8. java identity_仔细研究Java Identity API

    java identity 在深入探讨之前,让我们看一下有关Java Identity API JSR 351的一些快速事实. 这仍在进行中. . . JSR是什么时候发起的? 该JSR在2011年1 ...

  9. WildFly上具有AngularJS的Java EE 7和Java WebSocket API(JSR 356)

    这篇博客文章描述了用于WebSocket协议的Java API(JSR 356) (这是Java EE 7平台的四个最新JSR之一),并提供了部署在WildFly 8上并可以在OpenShift上在线 ...

  10. 【Other】最近在研究的, Java/Springboot/RPC/JPA等

    我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索Dubbo与 ...

最新文章

  1. (推荐阅读)H264, H265硬件编解码基础及码流分析
  2. 其他系统 对外接口设计_领导:项目有个接口要对外开放,小张你来设计一下?...
  3. KClient——kafka消息中间件源码解读
  4. 贪婪算法近似集合覆盖问题的解
  5. mysql max case连用_mysql 嵌套 case when 的问题
  6. 【算法】Quick Select
  7. Normalization的方法
  8. Oracle输入默认密码错误,oracle中默认账号oracle 11g SQL plus软件怎么打开?打开显示密码错误怎么办?...
  9. DS1302说明文档
  10. 毕业季的你准备好面试了吗?(下)
  11. mysql的配置管理_MySQL 启动流程及配置管理
  12. More Joel on Software 读书笔记
  13. 怎么把html表格转化为excel,导出html到excel表格数据格式-如何将html转换成excel
  14. 三分钟了解坚果J10的不足,多方位分析,让你学会挑选投影仪
  15. php 顿号,一字一顿用逗号、顿号、破折号还是省略号?
  16. c语言 gps课程设计,完整版GPS定位系统设计.doc
  17. COleDateTime 时间操作
  18. crontab定时运行bash脚本,重启zeppelin
  19. C语言自定义打印宏函数
  20. max6675 c语言程序,STM32+MAX6675利用SPI获取实时温度数据程序及代码

热门文章

  1. php5.2 xampp,使用XAMPP,如何將PHP 5.3替換為PHP 5.2?
  2. select中常用的对象
  3. android 图片自动移动位置信息,android – 使用翻译动画将ImageView从当前位置移动到固定位置...
  4. html获取页面input值,javascript怎么获取input中用户输入的内容?
  5. mysql建表语句外键_mysql里面用语句怎么建立表外键的命令
  6. android surfaceview , videoview 背景加圆角
  7. 说说大型高并发高负载网站的系统架构
  8. db2 reorg(转)
  9. MySQL 修改字段类型或长度
  10. $stateParams 详解