关于JPA的理解
JPA全称 Java Persistence API。JPA通过JDK5.0注解或者XML描述对象和关系表的映射关系,
并将运行期的实体对象持久化到数据库中。
持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、xml数据
文件中等等。持久化是将程序数据在瞬时状态和持久状态间转换的机制。JDBC就是一种持久化
机制,文件IO也是一种持久化机制。 规范:所谓的规范意指明文规定或者约定俗称的标准。如:道德规范、技术规范、
公司管理规范等。
那么"持久化规范"就是Sun针对持久化这一层操作指定的规范,如果没有指定JPA规范,
那么新起的框架就随意按照自己的标准来了,那我们开发人员就没办法把我们的精力
全部集中在我们的业务层上,而是在想如何进行兼容,这种情况有点像Android开发,Android
本身有官方的SDK,但是由于SDK过于开源了,结果导致很多厂商基于SDK二次开发,但是兼容性
就不是很好。 说到JPA,这里就不得不提一下Hibernate:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,
它将POJO与数据表建立映射关系,是一个全自动的ORM框架。Hibernate可以自动生成SQL
语句,自动执行,使得java程序员可以随心所欲的使用对象编程思维来操作数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在java的客户端程序使用,也可以在
Servlet/JSP的Web应用中使用。 关于POJO相关理解:
POJO PO VO DTO
POJO: Plain Ordinary Java Object 普通的java对象,持久化以后就是PO。
JavaBean:符合属性私有 get/set封装 无参构造 的一个普通类。
JavaBean 约等于 POJO
PO=POJO+xml配置 (数据访问层)
DTO: Data Transfer Object 数据传输对象(UI的下一层)
VO: View Object (UI层)
JPA和Hibernate的关系
JPA是一个规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),
OpenJPA等可供选择,所以使用JPA的一个好处是,可以更换实现而不必改动太多代码。
关于JPA的理解的更多相关文章
- JPA原理理解
从前面一篇<JPA使用入门>了解了JPA的简单使用.要想继续深入的使用JPA,可能了解一点原理对于学习JPA会比较有益处. 这里从JPA的功能来简单阐述JPA的原理. 从<初步了解J ...
- SpringData及SpringData JPA的理解和简单应用
SpringData是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得 数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务.此外,它还支持 基于关系型数据库的数据 ...
- spring jpa ManyToMany 理解和使用
1.java和jpa 中所有的关系都是单向的.这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的. 2.JPA还定义了一个OneToMany关系,它与ManyToMany关系类 ...
- JPA、Hibernate、Spring data jpa之间的关系,终于明白了
什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支 ...
- (转)JPA & Restful
参考博客: JPA: https://www.jianshu.com/p/b6932740f3c0 https://shimo.im/docs/zOer2qMVEggbF33d/ Restful: h ...
- Spring Data JPA、MyBatis还有Hibernate有什么区别
原文:https://www.imooc.com/article/19754?block_id=tuijian_wz Spring Data JPA.MyBatis还有Hibernate有什么区别 2 ...
- Spring Boot-JPA、Hibernate、Spring data jpa之间的关系
什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支 ...
- JPA、Hibernate、Spring data jpa之间的关系,以及和springboot的整合
什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支 ...
- JPA,Hibernate,Spring Data JPA之间的关系
什么么是JPA? 全称Java Persistence API(JAVA对象持久化API),可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1 ...
随机推荐
- O(nlogn)求逆序数对的个数
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...
- 使用高性能Pipelines构建.NET通讯程序
.NET Standard支持一组新的API,System.Span, System.Memory,还有System.IO.Pipelines.这几个新的API极大了提升了.NET程序的效能,将来.N ...
- Jmeter(二十三)稳定性测试后的波形图
jmeter-plugins.org 这个网站为 JMeter 提供了一些增强型功能的插件,使用起来就像 Eclipse 装插件一样,完全做到了插件的可插拔特性.本文简要介绍如何使用这些插件让你的 J ...
- APICloud手机APP开发
官网 http://docs.apicloud.com/
- 前端之CSS盒模型介绍
css盒模型 css盒模型是css的基石,盒模型由content(主体内容),padding(补白,填充),border(边框),margin(外间距); 1.content: width:数值+单位 ...
- debian中sudo无法使用问题
原文链接:http://sharadchhetri.com/2013/08/07/sudo-command-not-found-debian-7/ To solve this issue instal ...
- 使用nginx+tomcat实现静态和动态页面的分离
博主最近在优化一个javaweb项目,该项目之前一直都是使用tomcat处理用户请求的,无论静态还是动态的东西,一律交给tomcat处理.tomcat主要是负责处理servlet的,静态的文件还是交给 ...
- JS动态获取项目名以及获取URL地址中的参数
在项目当中我们可能会遇到例如改变的项目名称之后,相对应的地址就需要改变,为了减少工作量,将地址当中的项目名这一块写成动态获取的,那么最关键一点就是我要先获取它,再进行操作: 知识点整理,话不多说,直接 ...
- selenium-Python之鼠标事件
通过click()来模拟鼠标的单击操作,鼠标还具有鼠标右击,双击,悬停甚至鼠标拖动等功能.在webdriver中,将这些鼠标操作方法封装在ActionChains类提供. ActionChains类提 ...
- NSString+TimeCategory
NSString+TimeCategory.h //------------------------------------------------ #import <foundation fo ...