Spring Data JPA 的基本用法
Spring Data JPA 介绍
JPA 是 Java Persistence API 的简称,中文名为 Java 持久层 API。
可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现,引用 JPQL(Java Persistence Query Language)查询语言,属于 Spring 整个生态体系的一部分。
简单示例
1. 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 使用嵌入式 H2 数据库 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
2、创建实体类
@Data
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String reader;
private String isbn;
private String title;
private String author;
private String description;
}
注解 @Data 出自依赖 lombok ,它会自动生成 setting/getting 方法。
@Entity 注解表明它是一个 JPA 实体,id 属性加了 @Id 和 @GeneratedValue 注解,说明这个字段是实体的唯一标识,并且这个字段的值是自动生成的。
3、定义仓库接口
package com.example.readinglist.data;
import com.example.readinglist.bean.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @author 爱吃西瓜的番茄酱
* @version 1.0
* @date 2020/10/8 14:49
*
* Spring Data Jpa 提供了很神奇的魔法,
* 只需定义仓库接口,在应用程序启动后,
* 该接口在运行时会自动实现。
*/
public interface ReadingListRepository extends JpaRepository<Book, Long> {
/**
* 根据读者的用户名来查找阅读列表。
* @param reader
* @return
*/
List<Book> findByReader(String reader);
}
通过扩展 JpaRepository, ReadingListRepository 直接继承了18个执行常用持久化操作的方法。
JpaRepository 是个泛型接口,有两个参数:仓库操作的领域对象类型,及其ID属性的类型。
此外,我还增加了一个 findByReader() 方法,可以根据读者的用户名来查找阅读列表。
我们不需要定义 ReadingListRepository 接口的实现类。Spring Data 提供了很神奇的魔法,只需定义仓库接口,在应用程序启动后,该接口在运行时会自动实现。
4、使用 Spring MVC 创建 Web 界面
5、创建逻辑视图,就是 HTML 文件
基本的 Spring Data JPA 操作如上所示。
参考资料
《Spring Boot 实战》
每天学习一点点,每天进步一点点。
分类:
Spring Boot
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具