【Spring Boot】JPA — JPA入门

news2024/11/14 3:52:52

JPA简介

1. JPA是什么

JPA是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据,通过注解或者XML描述“对象-关系表”之间的映射关系,并将实体对象持久化到数据库中,极大地简化现有的持久化开发工作以及集成ORM技术。

JPA不是一种新的ORM框架,它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。它是一套规范而不是产品,而像Hibernate、TopLink等产品实现了JPA规范,我们就可以称它们为JPA的实现产品,关系如图所示。

在这里插入图片描述

2. JAP能做什么

JPA是在充分吸收了现有的Hibernate、TopLink、JDO等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。总的来说,JPA包括以下3方面的技术:

1)ORM映射元数据:JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。

2)Java持久化API:用来操作实体对象,执行增、删、改、查(CRUD)操作,框架在后台替代我们完成所有的事情,将开发者从烦琐的JDBC和SQL代码中解脱出来。

3)查询语言(JPQL):这是持久化操作中重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

JPA解放了我们对数据库的操作,使得开发者不再需要关心数据库的表结构,需要更改的时候只需要修改对应实体类的属性即可。在微服务架构中,服务拆分得越来越细,微服务内部只需要关心自身的业务,不需要我们过多关注数据库。因此,在微服务架构中更推荐使用JPA技术。

Spring Data对JPA的支持

Spring Data JPA是Spring在ORM框架、JPA规范的基础上封装的一套JPA应用框架。

在相当长的一段时间内,实现应用程序的数据访问一直很麻烦,必须编写大量的SQL代码来执行数据查询、更新等操作。使用Spring Data JPA开发人员只需要编写repository接口和自定义查找器方法,其他的SQL语句由Spring自动提供,使得开发者从烦琐的JDBC和SQL代码中解脱出来。

虽然主流的ORM框架都实现了JPA规范,但是在不同ORM框架之间切换需要编写各自的代码,而通过使用Spring Data Jpa能够方便开发者在不同的ORM框架之间进行切换而无需要更改任何代码。这样方便开发者在Spring Boot项目中使用JPA技术,具体关系如图所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

欧洲云巨头OVHcloud收购边缘计算专家 gridscale

边缘计算社区近日获悉,欧洲云巨头OVHcloud已进入全面收购德国公司 gridscale 的谈判,该公司是一家专门从事超融合基础设施的软件提供商。 此次战略收购将标志着 OVHcloud 的另一个重要里程碑,使该集团能够显着加速其地理部署,并进…

智能化时代与智慧化时代

当今社会正处于快速发展的时代,科技的进步给我们带来了许多前所未有的机遇和挑战。在这个过程中,我们正逐步迈向智能化时代和智慧化时代,这两个时代代表了技术发展的不同阶段和方向。让我们深入了解这两个时代的概念、特点以及它们对未来的意…

发布 VectorTraits v1.0,它是 C# 下增强SIMD向量运算的类库

发布 VectorTraits v1.0, 它是C#下增强SIMD向量运算的类库 VectorTraits: SIMD Vector type traits methods (SIMD向量类型的特征方法). NuGet: https://www.nuget.org/packages/VectorTraits/1.0.0 源代码: https://github.com/zyl910/VectorTraits 用途 总所周知&#x…

Java死锁的原因及解决方法

要想知道死锁出现的原因和解决方法,首先得知道什么是死锁,死锁是两个或两个以上的运算单元(进程、线程或协程),互相持有对方所需的资源,导致它们都无法向前推进,从而导致永久阻塞的问题。从字面…

Spine2D骨骼动画播放器 - 微信小程序版

Spine2D骨骼动画播放器 - 微信小程序版 简介平台支持 界面预览使用说明演示视频 版本笨笨的小目标(废话)参考资料测试文件百度盘分享 相关文档 简介 本播放器是SpinePlayer的微信小程序版。由于官方并没有提供现成的运行库,只能自己改造。 设…

如何应用运营商大数据精准营销?

如何应用运营商大数据精准营销? 越来越多的企业逐渐觉察到运营商大数据所带来的商业价值,精准营销也被他们用的越来越娴熟。那么,企业的大数据精准营销该如何应用呢?想必是很多资源有限的中小型公司最想了解的。 一 数据驱动运营…

springCloud-LoadBalancer负载均衡

接上个博客springcloud-Eureka。 Eureka主要是如何通过eureka服务器进行服务注册与发现,也有简单的负载均衡,实际上它其中的负载均衡就是靠LoadBalancer实现的。 2020年前SpringCloud是采用Ribbon作为负载均衡实现,但是在2020后采用了LoadBal…

部署elasticsearch集群

创建es集群 编写一个docker-compose.yaml文件,内容如下 version: 2.2 services:es01:image: elasticsearch:7.12.1container_name: es01environment:- node.namees01- cluster.namees-docker-cluster- discovery.seed_hostses02,es03- cluster.initial_master_nod…

大数据安全 | (一)介绍

目录 📚大数据安全 🐇大数据安全内涵 🐇大数据安全威胁 🐇保障大数据安全 ⭐️采集环节安全技术 ⭐️存储环节安全技术 ⭐️挖掘环节安全技术 ⭐️发布环节安全技术 🐇大数据用于安全 📚隐私及其…

CSS笔记(黑马程序员pink老师前端)选择器,字体,文本属性,Emmet语法,元素显示模式,CSS背景

选择器 选择器分为基础选择器和复合选择器两大类。 基础选择器 包括:标签选择器、类选择器、id选择器和通配符选择器。 /*标签选择器 */p {color: red;}/*类选择器 */.classname {color: yellow;}/*id选择器 */#idname {color: blue;}/*通配符选择器,选择页面所有的…

核心实验10_hybrid(实现access和trunk功能)_ENSP

项目场景: 核心实验10_hybrid(实现access和trunk功能)_ENSP 用hybrid的属性 是否打标签来达到替代使用access或trunk接口的目的 实搭拓扑图: 具体操作: SW1: [sw1]vlan 10 [sw1-vlan10]int g0/0/1 [sw1-GigabitEther…

ChatGPT 超有用提示词 练习雅思口语

目录 Prompts 🔻作为一个英语口语老师和提高英语口语 方法1:口语简单练习 方法2:角色扮演练习口语 作为一个英语翻译/英语作文优化师/稿件校对 作为一个”职位”面试官 学习英文单词 演员 苏菲 玛索 阿尔弗雷多詹姆斯帕西诺 要孝顺…

LeetCode 1113.报告的记录

数据准备 Create table If Not Exists Actions (user_id int, post_id int, action_date date, action ENUM(view, like, reaction, comment, report, share), extra varchar(10)); Truncate table Actions; insert into Actions (user_id, post_id, action_date, action, ext…

Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化...

全文链接:https://tecdat.cn/?p33566 生成对抗网络(GAN)是一种神经网络,可以生成类似于人类产生的材料,如图像、音乐、语音或文本(点击文末“阅读原文”获取完整代码数据)。 相关视频 最近我们…

Unity 之 Material (材质)渲染3D对象的重要组件

文章目录 介绍一些代码例子 介绍 在Unity中,Material(材质)是一种用于渲染3D对象的重要组件。Material定义了对象的外观,包括其颜色、纹理、光照属性和反射等。以下是关于Material的详细介绍: 创建Material&#xff1…

IDEA报错:No valid Maven installation found

当我想要用maven进行clean的时候,发现报了这个错误,idea的event logs记录为 网上又说可能是因为你的maven环境没有配置好,我对我的maven进行了检查,发现是没有问题的,在这里提醒大家,如果你以前的项目maven…

Java入门第三季

一、异常与异常处理 1. 异常简介 在Java中,**异常是程序在执行过程中出现的问题或意外情况,导致程序无法按照预期的流程进行。**异常处理是Java中用于处理程序中出现的异常的一种机制。 Java中的异常可以分为两大类:受检查的异常&#xff…

Linux——zabbix

简介 官网:https://www.zabbix.com/ Zabbix 是一个开源的网络监控和警报解决方案。它允许管理员监控网络中的各种设备、服务器和应用程序,并收集有关它们性能和状态的数据。Zabbix 提供了一个集中化的管理界面,通过各种监控方式&#xff08…

大模型技术实践(三)|用LangChain和Llama 2打造心灵疗愈机器人

上期文章我们实现了Llama 2-chat-7B模型的云端部署和推理,本期文章我们将用“LangChainLlama 2”的架构打造一个定制化的心灵疗愈机器人。有相关知识背景的读者可以直接阅读「实战」部分。 01 背景 1.1 微调 vs. 知识库 由于大模型在垂直行业领域的问答效果仍有待提…

基于Simulink的用于电力系统动态分析

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…