问题解决之-Spring Data开发手册|Java持久化API(JPA)需要了解到什么程度呢?_api问题怎么解决-程序员宅基地

技术标签: 问题解决方案  

JPA,Java Persistence API是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术

ORM:通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质就是将数据从一种形式转换到另外一种形式。

同时也结束了Hibernate、TopLink等ORM框架各自为营的局面。JPA充分吸收了Hibernate、TopLink等ORM框架的基础上发展起来的,使用方便,伸缩性强

注意: JPA不是一种新的ORM框架,它的出现只是用于规范现有的ORM技术,它不能取代现有的Hibernate等ORM框架,相反,采用JPA开发时,我们仍将使用这些ORM框架,只是此时开发出来的应用不在依赖于某个持久化提供商。应用可以在不修改代码的情况下载任何JPA环境下运行,真正做到低耦合,可扩展的程序设计。类似于JDBC,在JDBC出现以前,我们的程序针对特性的数据库API进行编程,但是现在我们只需要针对JDBC API编程,这样能够在不改变代码的情况下就能换成其他的数据库。

JPA是一套规范,不是一套产品。Hibernate是一套产品,如果这些产品实现了JPA规范,那么我们可以叫它们为JPA的实现产品。使用JPA,就可以把我们的应用从Hibernate中解脱出来,那么现在问题来了::如何使用JPA来开发呢?

准备好了吗,进入正题,起飞!

首先,先带大家看一下本篇文章的大致介绍。

没目录怎么知道这篇到底有多少干货呢?

以前的开发模式

JPA是什么

JPA解决了什么问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43214644/article/details/115771680

智能推荐

数字货币支付和电子支付一样吗?-程序员宅基地

文章浏览阅读1.2k次。数字货币支付和电子支付一样吗?相信大多数人都知道数字货币和电子支付说的不是一回事儿,但其实还是会有人把两者搞混。看完下面这篇文章,你就明白二者的区别到底在哪里了。相信大家应该还记得,大约是在两年前,我国央行召开了一场关于数字货币的研讨会,这次研讨会可以看成是我国数字货币研发的起点。众所周知,数字货币和我们日常生活中见到的实体货币不一样,它是和密码学及互联网技术有关的新一代的货币。于是我们要问,数..._电子货币和电子支付工具可以等同吗?

hadoop05-HDFS的api操作_hdfs api 操作 centos hadoop-程序员宅基地

文章浏览阅读195次。环境配置eclipse配置hdfs的环境hadoop的插件hadoop-eclipse-plugin,放在eclipse的安装目录的plugins下配置本地hadoop的环境解压hadoop安装包配置windows下hadoop的环境变量 新建:HADOOP_HOME=hadoop的解压路径,我的是:HADOOP_HOME=C:\soft\hadoop-2.7.6..._hdfs api 操作 centos hadoop

stm32固件库assert_param()_stm32参数检查-程序员宅基地

文章浏览阅读309次。在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个ass_stm32参数检查

dataframe添加一行,并自定义行索引名_dataframe添加一行数据不改变索引-程序员宅基地

文章浏览阅读4.3k次。添加一行为列求和_dataframe添加一行数据不改变索引

黑妹的游戏-程序员宅基地

文章浏览阅读86次。#include <iostream>#include <algorithm>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>#include <string>#include <queue>#include <stack>#include <map>#include <se

C++ cin的成员函数及其常见用法-程序员宅基地

文章浏览阅读3.6k次,点赞8次,收藏35次。目录一.cin的常见读取方法Ⅰ.cin>>Ⅱ.cin.get()Ⅲ.cin.getline()二.从标准输入读取一行字符串的其它方法Ⅰ.getline()Ⅱ.gets()一.cin的常见读取方法Ⅰ.cin>>cin 可以连续从键盘读取想要的数据,以空格、tab 或换行作为分隔符。当 cin>> 从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或..._cin的成员函数

随便推点

onSaveInstanceState()什么时候会被调用呢?_说下onsaveinstancestate()方法的作用 ? 何时会被调用?-程序员宅基地

文章浏览阅读2.3k次。概括的讲,onSaveInstanceState 这个方法会在activity 将要被kill之前被调用以保存每个实例的状态,以保证在将来的某个时刻回来时可以恢复到原来的状态,但和activity 的生命周期方法onStop 和 onPause 不一样,与两者并没有绝对的先后调用顺序,或者说并非所有场景都会调用onSaveInstanceState 方法。那么onSaveInstanceSta..._说下onsaveinstancestate()方法的作用 ? 何时会被调用?

MDK 添加芯片支持 以STM32F103ZE为例-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏9次。问题说明:新建mdk工程时第一步是选芯片(以STM32F103ZE为例),但是芯片没有的话需要自己手动添加,如图:解决方法:下载KEIL MDK5以后是没有安装device的,如果此时创建工程会找不到目标芯片,如下图所示:此时我们就要安装自己需要的芯片系列,比如STM32F1系列。首先选择Project-Manage-Pack Installer如下图所示:..._stm32f103ze芯片

EAS BOS:根据编码规则生成编码_服务端的 coderulebuilder 组件根据这些配置信息生成指定编码,他的具体的生成编码-程序员宅基地

文章浏览阅读483次。ICodingRule codingRule = CodingRuleFactory.getLocalInstance(ctx);ICodingRuleManager codingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);CodingRuleInfo codingInfo = codingRule.getCodingRuleInfo("where id='6InSdpiUSAGKghKCKHJO3vimVMM='");/_服务端的 coderulebuilder 组件根据这些配置信息生成指定编码,他的具体的生成编码

neo4j查询语句-程序员宅基地

文章浏览阅读5.5k次。1、查询所有节点及关系: MATCH (n)returnn2、查询指定类型节点: MATCH(h:Helo),(m:Mailfrom)returnh,mn,h,m都是随意的,可以理解为变量_neo4j查询语句

git推代码报错"You do not have permission to push to the repository via HTTPS"_you do not have permission to push to 'enterprise_-程序员宅基地

文章浏览阅读3.8w次。git推代码报错&amp;quot;you do not have permission to push to the repository via HTTPS&amp;quot;问题描述:使用git提交代码时报错,如图下:意思是: 通过https推代码没有权限解决办法:情况一: 有可能是没有推代码的权限解决方法: 你可以git pull 拉取一下代码,如果能拉取,不能推就是权限问题,请找公司其他人帮你开通权限..._you do not have permission to push to 'enterprise__asm1/ams' via ssh

基于RK3399Pro平台的深度学习入门课程(一)概述+闲聊_rk3399 rk3399pro-程序员宅基地

文章浏览阅读3.2k次,点赞6次,收藏18次。一、概述大家好,很高兴能跟大家一起分享深度学习的课程,本课程基于RK3399ProD的人工智能开发板,简单介绍深度学习领域的相关内容,在后面的课程会加入实际项目的内容,以常见的实际项目为例,更能让初学者或企业直接入手,同时缩短产品的研发周期。分享这个课程内容,也是能够让我们对AI领域的研究更接地气,不过因为也是第一次写这样的课程,如果有缺陷,也请各位大佬们不吝支持一下,谢谢!开发板采用了高..._rk3399 rk3399pro