Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!
Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现
这边主要介绍Spring Data JPA的一些用法:
SpringBoot整合使用:
- 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- 创建实体类;
@Data
@Entity
@Table(name = "user")
public class User {
/**
* 主键,自动递增
* @Column(name = "ID") 对应数据库字段
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "U_ID")
private Integer uId;
@Basic
@Column(name = "U_NAME", length = 100)
private String uName;
@Basic
@Column(name = "U_AGE")
private String uAge;
@Basic
@Column(name = "BIRTH_DATE")
private LocalDateTime birthDate;
}
- 创建DAO层:JPA可以继承5个接口:
1.Repository
2.CrudRepository
3.PagingAndSortingRepository
4.JpaSpecificationExecutor
5.JpaRepository<实体类、主键类型>:一般都使用这个接口,因为这个接口有所有接口的功能
@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
List<T> findAll();
List<T> findAll(Sort var1);
List<T> findAllById(Iterable<ID> var1);
<S extends T> List<S> saveAll(Iterable<S> var1);
void flush();
<S extends T> S saveAndFlush(S var1);
void deleteInBatch(Iterable<T> var1);
void deleteAllInBatch();
T getOne(ID var1);
<S extends T> List<S> findAll(Example<S> var1);
<S extends T> List<S> findAll(Example<S