java persistence,java-jpa(Java Persistence API)初识,
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)初识,相关推荐
- bug日志:报错 java:程序包javax.persistence.criteria不存在,解决!
bug日志:报错 java:程序包javax.persistence.criteria不存在,解决! 首先上报错图片: 排查问题:按住ctrl用鼠标左键点击框中javax可看到如下图显示 该jar包中 ...
- java方法criterion_java – JPA Criteria谓词条件
首先,您必须考虑以分层方式重新构建应用程序.您至少需要3层,DAO,服务和WebService. 有关数据库和JPA的所有内容都必须位于DAO层中.所有与json相关的东西都必须在你的WebServi ...
- java EE中JPA介绍
全称是:Java Persistence API (java 持久化应用接口),是由sun公司带头制定的.由于目前有很多java持久层的框架,比如Hibernate.TopLink.OpeanJPA等 ...
- Java笔记-使用jpa连接mysql数据库
目录 基本概念 代码与实例 基本概念 此处的基本概念来至于:https://www.cnblogs.com/yunche/p/10279324.html JPA(Java Persistence AP ...
- Java工作笔记-JPA查询达梦7数据库(Spring Boot + ORM)
目录 基本概念 代码与实例 存在的坑 基本概念 使用JPA可以简化编程,并且可以不变代码,直接换其他数据库,比如,现在要把数据库换成达梦的. 首先把达梦安装好: 这里可以看到方言什么都有,现在来看看那 ...
- SpringBoot项目入门,前端thymeleaf,后端Java,数据库Jpa+MySQL
1.创建SpringBoot项目 1.选择Sping项目初始化 2.选择服务器 国外通常是:https://start.spring.io 国内通常是:https://start.aliyun.com ...
- 在使用 eclipse 时, eclipse 的右下角 一直在提示 “JPA java change event handler” ,eclipse使用起来很卡,解决办法
问题描述: 在使用 eclipse时, eclipse 的右下角 一直在提示 "JPA java change event handler" eclipse使用起来很卡, 原因: ...
- java identity_仔细研究Java Identity API
java identity 在深入探讨之前,让我们看一下有关Java Identity API JSR 351的一些快速事实. 这仍在进行中. . . JSR是什么时候发起的? 该JSR在2011年1 ...
- WildFly上具有AngularJS的Java EE 7和Java WebSocket API(JSR 356)
这篇博客文章描述了用于WebSocket协议的Java API(JSR 356) (这是Java EE 7平台的四个最新JSR之一),并提供了部署在WildFly 8上并可以在OpenShift上在线 ...
- 【Other】最近在研究的, Java/Springboot/RPC/JPA等
我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索Dubbo与 ...
最新文章
- (推荐阅读)H264, H265硬件编解码基础及码流分析
- 其他系统 对外接口设计_领导:项目有个接口要对外开放,小张你来设计一下?...
- KClient——kafka消息中间件源码解读
- 贪婪算法近似集合覆盖问题的解
- mysql max case连用_mysql 嵌套 case when 的问题
- 【算法】Quick Select
- Normalization的方法
- Oracle输入默认密码错误,oracle中默认账号oracle 11g SQL plus软件怎么打开?打开显示密码错误怎么办?...
- DS1302说明文档
- 毕业季的你准备好面试了吗?(下)
- mysql的配置管理_MySQL 启动流程及配置管理
- More Joel on Software 读书笔记
- 怎么把html表格转化为excel,导出html到excel表格数据格式-如何将html转换成excel
- 三分钟了解坚果J10的不足,多方位分析,让你学会挑选投影仪
- php 顿号,一字一顿用逗号、顿号、破折号还是省略号?
- c语言 gps课程设计,完整版GPS定位系统设计.doc
- COleDateTime 时间操作
- crontab定时运行bash脚本,重启zeppelin
- C语言自定义打印宏函数
- max6675 c语言程序,STM32+MAX6675利用SPI获取实时温度数据程序及代码
热门文章
- php5.2 xampp,使用XAMPP,如何將PHP 5.3替換為PHP 5.2?
- select中常用的对象
- android 图片自动移动位置信息,android – 使用翻译动画将ImageView从当前位置移动到固定位置...
- html获取页面input值,javascript怎么获取input中用户输入的内容?
- mysql建表语句外键_mysql里面用语句怎么建立表外键的命令
- android surfaceview , videoview 背景加圆角
- 说说大型高并发高负载网站的系统架构
- db2 reorg(转)
- MySQL 修改字段类型或长度
- $stateParams 详解