1.什么是JPA?

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。

持久化

持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在的数据库中,或者存储在磁盘文件中、XML数据文件中等等。

持久化是将程序数据在持久状态和瞬时状态间转换的机制。

JDBC就是一种持久化机制。文件IO也是一种持久化机制。

规范

规范”: 所谓的规范意指明文规定或约定俗成的标准。如:道德规范、技术规范,公司管理规范。

那么“持久化规范”就是Sun针对持久化这一层操作指定的规范,如果没有指定JPA规范,那么新起的框架就随意按照自己的标准来了,

那我们开发人员就没法把我们的经历全部集中在我们的业务层上,而是在想如何进行兼容,这种情况有点像Android开发,

Android本身有官方的SDK,但是由于SDK过于开源了,结果导致很多厂商基于SDK二次开发,但是兼容性就不是很好,

最好的例子就是Android的头像上传,就是一件很烦人的事情。好了,JPA就介绍到这里。

2. 什么是Hibernate?

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,

是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,

Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

ORM

ORM是对象关系映射的意思,英语:Object Relational Mapping简称ORM,是一种程序技术,用于实现面向对象编程语言里不同系统类型的系统之间的数据转换。

好了,更多的概念需要自己去挖掘,这里只是抛装引玉下。

3.什么是Spring Data?

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。

其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。

此外,它还支持基于关系型数据库的数据服务,如Oracle RAC等。对于拥有海量数据的项目,

可以用Spring Data来简化项目的开发,就如Spring Framework对JDBC、ORM的支持一样,

Spring Data会让数据的访问变得更加方便。

4.什么是Spring Data JPA?

Spring Data JPA能干什么

可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。

除了CRUD外,还包括如分页、排序等一些常用的功能。

首先我们需要清楚的是Spring Data是一个开源框架,在这个框架中Spring Data JPA只是这个框架中的一个模块,

所以名称才叫Spring Data JPA。如果单独使用JPA开发,你会发现这个代码量和使用JDBC开发一样有点烦人,

所以Spring Data JPA的出现就是为了简化JPA的写法,让你只需要编写一个接口继承一个类就能实现CRUD操作了。

5.JPA/Hibernate 关系

JPA是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,

所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。

最新文章

  1. Android中的Binder机制的简要理解
  2. mysql安装(Mac平台)
  3. 日期选择插件clndr的使用
  4. Linux安装oracle 10g常见问题之——OUI-25031
  5. jvm 漫谈 笔记
  6. mysql数据库之索引和分析索引
  7. DataSet、DataTable和DataGridView知识备忘
  8. 自己写的一个banner动画
  9. 基于RSA的加密/解密示例C#代码
  10. 【转】 linux内核移植和驱动添加(三)
  11. Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析
  12. poj1935(树形dp)
  13. ural1772 Ski-Trails for Robots
  14. Zuul(SpringCloud学习笔记一)
  15. ccf 201903-5 317任务
  16. Dora.Interception,为.NET Core度身打造的AOP框架 [3]:多样化拦截器应用方式
  17. 潭州课堂25班:Ph201805201 django 项目 第一课 (课堂笔记)
  18. VS 2015 Android 环境设置
  19. SQL 必知必会·笔记<17>使用存储过程
  20. ftp删除目录和文件,目录下有文件删除提示【550 Remove directory operation failed.】

热门文章

  1. 删除链表中重复的结点——牛客剑指offer
  2. node工具之node-ip
  3. java中的重写总结
  4. SDX Instance Resource Assignment Guide 1 of 2
  5. Linux系统定时备份网站文件到七牛云存储脚本
  6. |、&、||、&&、^符号含义
  7. golang日志框架--logrus学习笔记
  8. Webpack loaderUtils.parseQuery()
  9. 访问接口错误,com.netflix.client.ClientException: Load balancer does not have available server for client: panfeng-item-service
  10. python中re模块