Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 JPA 技术实现,可以使开发者用极简的代码便可实现对数据的访问和操做。它提供了包括增删改查等在内的经常使用功能,且易于扩展!学习并使用 Spring Data JPA 能够极大提升开发效率!spring data jpa 让咱们解脱了 DAO 层的操做,基本上全部 CRUD 均可以依赖于它来实现html
具体使用:(springboot)java
一、配置pom文件spring
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
二、application.ymlsql
spring:
jpa:
show-sql: true
hibernate:
ddl-auto: update
#create:每次加载Hibernate时都会删除上一次生成的表(包括数据),而后从新生成新表,即便两次没有任何修改也会这样执行。适用于每次执行单测前清空数据库的场景。数据库
#create-drop:每次加载Hibernate时都会生成表,但当SessionFactory关闭时,所生成的表将自动删除。springboot
#update:最经常使用的属性值,第一次加载Hibernate时建立数据表(前提是须要先有数据库),之后加载Hibernate时不会删除上一次生成的表,会根据实体更新,只新增字段,不会删除字段(即便实体中已经删除)。app
#validate:每次加载Hibernate时都会验证数据表结构,只会和已经存在的数据表进行比较,根据model修改表结构,但不会建立新表。框架
三、Repositorydom
respository建立:spring-boot
①能够继承Repository类,该类只是一个借口类,并无方法
②能够继承CrudRepository
③能够加成JpaRepository
④继承PagingAndSortingRepository,能够进行分页查询,只须要方法的最后一个参数位置假如Pageable便可
package com.nxz.testboot.jpa; import com.nxz.testboot.domain.User; import org.springframework.data.repository.PagingAndSortingRepository; import java.util.List; public interface UserRespository extends PagingAndSortingRepository<User, Long> { List<User> findUsersByUsernameNotNull(); }
四、Entity
package com.nxz.testboot.domain;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Data
@Entity(name = "user")
public class BscUser {
@Id
@GeneratedValue
private long id;
@Column(name = "username")
private String username;
@Column(name = "sex")
private String sex;
@Column(name = "age")
private long age;
@Column(name = "password")
private String password;
}
五、执行UserRespository 中的find方法 便可查到相关数据