全自动orm框架SpringData Jpa 简单使用

目录

介绍

整合springboot

简单使用

基本操作

查询数据

新增

[​编辑 删除](#编辑 删除)

[​编辑 分页查询](#编辑 分页查询)

自定义方法查询

自定义sql查询

一对一映射

一对多映射

​编辑


介绍

Spring data JPA是Spring在ORM框架,以及JPA规范的基础上,封装的一套JPA应用框架,并提供了一整套的数据访问层解决方案。

Spring data JPA的功能非常的强大,这里我们先跳过环境搭建这一步,来一睹Spring data JPA的"芳容"。

Spring data JPA提供给用户使用的,主要有以下几个接口:

Repository:仅仅是一个标识,表明任何继承它的均为仓库接口类,方便Spring自动扫描识别

CrudRepository:继承Repository,实现了一组CRUD相关的方法

PagingAndSortingRepository:继承CrudRepository,实现了一组分页排序相关的方法

JpaRepository:继承PagingAndSortingRepository,实现一组JPA规范相关的方法

JpaSpecificationExecutor:比较特殊,不属于Repository体系,实现一组JPA Criteria查询相关的方法。

整合springboot

简单使用

引入依赖

java 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

yml配置

jpa可以直接对实体类进行配置,并在yml中开启建表的自动配置,启动项目时就会自动帮我们创建实体类对应的数据库表,这样就不需要手动创建表

创建实体类

此时数据库表中并没有tb_student表

启动项目测试

查看数据库

基本操作

查询数据

插入测试数据

新建student持久层

记得将ymal配置中的create调整成update,否则每次启动测试都会删除创建表操作

新增

删除

分页查询

插入测试数据

自定义方法查询

在持久层中直接定义,书写findAll后有自动提示,拼接条件

自定义sql查询

查询

修改

如果想要完全使用原生sql,属性值和实体类也不想用,需要添加nativeQuery=true属性

注意比较实体和纯原生sql区别

一对一映射

新建部门实体

对应表

设置一对一对应

一对多映射

创建一个作品表,一个人可以对应多个作品

Student实体维护一对多关系

测试插入学生

查看插入结果

一个学生李白对应多个作品

观察sql是一个左外关联

相关推荐
ANYOLY13 分钟前
多线程&并发篇面试题
java·面试
用户2986985301426 分钟前
Java高效读取CSV文件的方法与分步实例
java·后端
程序员卷卷狗38 分钟前
JVM实战:从内存模型到性能调优的全链路剖析
java·jvm·后端·性能优化·架构
Android-Flutter39 分钟前
kotlin - 正则表达式,识别年月日
java·kotlin
得物技术39 分钟前
线程池ThreadPoolExecutor源码深度解析|得物技术
java·编译器·dns
道可到41 分钟前
直接可以拿来的面经 | 从JDK 8到JDK 21:一次团队升级的实战经验与价值复盘
java·面试·架构
数字化顾问1 小时前
基于Spring Boot + Vue 3的乡村振兴综合服务平台架构设计与实现
vue.js·spring boot·后端
ZhengEnCi1 小时前
Java_Object 数组完全指南-从入门到精通的多类型数据存储利器
java·后端
色空大师1 小时前
【mybatisPlus详解】
java·mybatis·mybatisplus
starxg2 小时前
bkhtmltopdf - 高性能 HTML 转 PDF 工具(代替 wkhtmltopdf)
java·pdf·html·wkhtmltopdf·htmltopdf