SpringBoot 一文搞懂Spring JPA

article/2025/9/18 12:09:07

一文搞懂Spring JPA

什么是 JPA

spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询等等。

Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。

Springboot整合SpringData JPA

SpringData简介

在这里插入图片描述

整合SpringData JPA

一、导入依赖

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>

二、添加配置文件

在application.yml中添加datasource配置,或者

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8username: rootpassword: 123456jpa:hibernate:ddl-auto: updateshow-sql: true

在这里插入图片描述hibernate.hbm2ddl.auto 参数的作用主要用于:自动创建、更新、验证数据库表结构,有四个值。
create:每次加载 Hibernate 时都会删除上一次生成的表,然后根据 model 类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop:每次加载 Hibernate 时根据 model 类生成表,但是 sessionFactory 一关闭,表就自动删除。
update:最常用的属性,第一次加载 Hibernate 时根据 model 类会自动建立起表的结构(前提是先建立好数据库),以后加载 Hibernate 时根据 model 类自动更新表结构,即使表结构改变了,但表中的行仍然存在,不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
validate :每次加载 Hibernate 时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

三、配置一个javabean去对应和一张表对应

javax.persistence
虽然Spring Data JPA已经帮我们对数据的操作封装得很好了, 约定大于配置思想,帮我们默认了很多东西。
JPA(Java持久性API) 是存储业务实体关联的实体来源。它显示了如何定义一个面向普通 Java对象(POJO)作为一个实体,以及如何与管理关系实体提供一套 标准。因此,javax.persistence下面的有些注解还是必须要去了解 的,以便于更好地提高工作效率。

具体详见

https://blog.csdn.net/yangzhiwei273/article/details/115373747

基本注解包括@Entity、@Table、@Id、@IdClass、@GeneratedValue、@Basic、@Transient、@Column、@Temporal、 @Enumerated、@Lob。

@Entity定义对象将会成为被JPA管理的实体,将映射到指定的数据库表。
@Table指定数据库的表名。
@Id定义属性为数据库的主键,一个实体里面必须有一个。
@IdClass利用外部类的联合主键。
@GeneratedValue为主键生成策略
@Basic表示属性是到数据库表的字段的映射。如果实体的字段上没有任何注解,默认即为@Basic。
@Transient表示该属性并非一个到数据库表的字段的映射,表示非持久化属性,与@Basic作用相反。JPA映射数据库的时候忽略它。
@Column定义该属性对应数据库中的列名。
@Temporal用来设置Date类型的属性映射到对应精度的字段。
@Lob 将属性映射成数据库支持的大对象类型,支持以下两种数据库类型的字段。

关联关系注解
@JoinColumn定义外键关联的字段名称
@OneToOne关联关系
@OneToMany与@ManyToOne可以相对存在,也可只存在一方。
@ManyToMany表示多对多,和@OneToOne、@ManyToOne一样也有单向、双向之分。单向双向和注解没有关系,只看实体类之间是否相互引用。

在这里插入图片描述在这里插入图片描述

四、dao层

 CrudRepository接口,主要是完成一些增删改查的操作。
在这里插入图片描述这是最简单的使用了,其实这里关键是Dao到底可以用哪些方法,截了一下图,大概可以看到基本的crud方法应该是都实现了,你只需要传入相关的参数即可。

在springdata jpa中,增加和修改方法都是save()
在这里插入图片描述

查询,方法就多了,但都是类似findxxx()
在这里插入图片描述删除 delete()
在这里插入图片描述

接下来就是service层和controller层了,可以开始测试数据库代码了。


http://chatgpt.dhexx.cn/article/9DyebR63.shtml

相关文章

JPA基础知识----JPA 基本注解,JPA API

JPA 是什么 Java Persistence API&#xff1a;用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范&#xff0c;使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系 JPA 是 hibernate 的一个抽象&#xff08;就像JDBC和JDBC驱动的关系&#xff09;&…

java jpa是什么_什么是JPA?

JDBC jdbc是一组规范&#xff0c;是接口&#xff0c;由不同的数据库厂商各自提供相应的实现类&#xff0c;打包成jar包&#xff0c;也就是所谓的数据库驱动。而我们的java应用程序&#xff0c;只需要调用jdbc的接口就可以了。 而JPA是和jdbc类似的东西 什么是JPA Java Persiste…

JPA与Mybatis的区别

其实JPA和mybatis大体上没什么区别&#xff0c;架构上很相似&#xff0c;mybatis就是mapper层&#xff0c;JPA就是repository层&#xff0c;其他都一样的 JPA就是把mapper层的接口换成repository的接口: 那么接口具体长什么样呢&#xff1f; mapper层 自己写sql语句 JPA的re…

什么是JPA?Java持续性介绍

新钛云服已累计为您分享723篇技术干货 本文将了解基于 Hibernate 的 Java 持久化标准&#xff0c;学习如何使用 JPA 在关系数据库或 NoSQL 数据库中存储和管理 Java 对象。 作为一种规范&#xff0c;Jakarta Persistence API&#xff08;以前称为 Java Persistence API&#xf…

spring boot 中使用 jpa以及jpa介绍

最近在项目中使用了一下jpa&#xff0c;发现还是挺好用的。这里就来讲一下jpa以及在spring boot中的使用。 在这里我们先来了解一下jpa。 1.什么是jpa呢&#xff1f; JPA顾名思义就是Java Persistence API的意思&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的…

JPA是什么

JPA仅仅是一种规范&#xff0c;也就是说JPA仅仅定义了一些接口&#xff0c;而接口是需要实现才能工作的。所以底层需要某种实现&#xff0c;而Hibernate就是实现了JPA接口的ORM框架。 也就是说&#xff1a; JPA是一套ORM规范&#xff0c;Hibernate实现了JPA规范&#xff01;如…

数据中台(一)数据中台详解

1.数据中台的由来 数据库阶段 ---> 传统数仓 ---> 大数据平台 ----> 大数据中台 1.1.数据存储起源&#xff1a;数据库 1979年&#xff1a;Oracle1.0商用数据库发布 1996年&#xff1a;MySQL1.0发布&#xff0c;到2000年以后开始火起来。 特点&#xff1a;数据库主要面…

通俗易懂解释什么是“中台”

通俗易懂解释什么是“中台” 随着互联网公司崛起&#xff0c;“中台”这个词也进入了人们的视线。BAT 等公司纷纷推出了自己的中台系统。那么&#xff0c;什么是中台系统&#xff1f;它是如何诞生的&#xff1f;它长什么模样&#xff1f;我们为什么需要它&#xff1f;一串串的问…

什么是中台

什么是中台&#xff1f; 前台 由各类前台系统组成的前端平台。每个前台系统就是一个用户触点&#xff0c;即企业的最终用户直接使用或交互的系统&#xff0c;是企业与最终用户的交点。列如用户直接使用的网站&#xff0c;手机APP&#xff0c;微信公众号都属于前台范畴。 中台&…

什么是“中台”?

“中台”这个概念&#xff0c;越来越多的在各种技术大会上提及&#xff0c;各大技术公司&#xff0c;纷纷推出自己的“中台”方案&#xff0c;究竟什么是“中台”&#xff1f;他和“前台”、“后台”有何区别&#xff1f; 《》&#xff0c;这是我的朋友、前同事小灰写的一篇漫画…

中台架构

中台是什么 企业互联网中台架构&#xff0c;简称中台&#xff0c;起源于阿里巴巴&#xff0c;不同的人对中台有不同解读。 我认为&#xff0c;中台可定义为&#xff1a;中台是一套结合互联网技术和行业特性&#xff0c;将企业核心能力以共享服务中心进行沉淀&#xff0c;形成“…

数据中台架构体系理解

目前&#xff0c;大部分企业更倾向于数据集中采集、存储&#xff0c;并应用分层建设。这种方式一方面有利于应用系统的快速部署&#xff0c;另一方面也保证了数据的集中管理与运营&#xff0c;体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发…

业务中台和数据中台的区别

中台里面有两个很重要的中台&#xff0c;一个是业务中台&#xff0c;一个是数据中台。 业务中台是提供可复用的业务&#xff0c;API数据中台是提供数据洞察和智能的。 不管什么中台&#xff0c;它实际上都是平台思想的一个体现&#xff0c;一种具象。 二者的联系 数据中台从业…

数据中台详解

文章目录 什么是数据中台数据中台 VS 数据仓库数据中台的业务价值与技术价值 数据中台建设与架构数据中台建设方法论数据中台架构 数据汇聚联通&#xff1a;打破企业数据孤岛数据采集、汇聚的方法和工具数据交换 数据体系建设数据体系规划统一数仓层建设——标准化的数据底座相…

数据中台(七) 数据中台架构

总体架构图 数据存储 计算引擎 数据汇聚 数据汇聚是把数据资源通过实时、批量的方式存储到数据中台。基本是按照数据的原始状态堆砌在一起的&#xff0c;是企业对过往所有IT信息化建设积累的成果的融合。 数据开发 数据开发是数据资产内容建设的主战场&#xff0c;是数据价值…

什么是中台?

文章目录 中台——为前台而生一、没有中台的时代——传统项目二、中台的出现背景&#xff08;1&#xff09;国外&#xff08;最先&#xff09;&#xff08;2&#xff09;国内&#xff08;部分&#xff09;A. 阿里巴巴B. 华为 三、什么是中台四、为什么要做中台五、前中后台三者…

详解什么是中台?

什么是中台 最近被老板折腾得够呛&#xff0c;我们老板听说最近中台的概念很火&#xff0c;让我们调研公司实习中台战略的可行性。刚开始并不理解什么是中台… 因此&#xff0c;写篇博客先简单介绍下什么是中台。 要理解中台&#xff0c;要先清楚传统项目架构的痛点在哪里 没有…

传统系统架构与中台架构的区别和联系

SOA架构思想 我们可以来看下SOA本身的定义&#xff0c;即&#xff1a; SOA是一种架构方法&#xff0c;将传统的单片式应用打破&#xff0c;分解为离散的、自治的业务服务&#xff0c;利用标准提升他们的互操作性&#xff0c;从而可以更好地共享、重用和组装&#xff0c;快速构…

中台不同于平台,那么到底啥是中台?

1、哪些不是中台&#xff0c;而是应该叫平台 做开发&#xff0c;有所谓的三层技术架构&#xff1a;前端展示层、中间逻辑层、后端数据层。我们现在讲的中台不在这个维度上。 做开发&#xff0c;还有所谓的技术中间件。一开始我们没有中间件的概念&#xff0c;只有操作系统、数据…

什么是数据中台

转载:https://mp.weixin.qq.com/s/nXI0nSSOneteIClA7dming 没有中台的时代 在传统IT企业&#xff0c;项目的物理结构是什么样的呢&#xff1f;无论项目内部的如何复杂&#xff0c;都可分为“前台”和“后台”这两部分。 什么是前台&#xff1f; 首先&#xff0c;这里所说的“…