目录
[编辑 删除](#编辑 删除)
[编辑 分页查询](#编辑 分页查询)
介绍
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是一个左外关联