JPA(Java Persistence API,Java持久化应用编程接口)是Java的一种持久化规范。Spring Data JPA(以下简称SDJPA)是Hibernate框架在Spring体系中的一种结合,是实现了JPA规范的全ORM框架。与MyBatis相比,该框架能够根据具体关系型数据库自动生成SQL语句,且与Spring框架整合性好。
在Spring Boot中要使用SDJPA,需要首先在Boot配置文件(Application)中配置数据库连接池,然后再配置几个与SDJPA有关的参数:
# 如果需要,可以进行自动建表
spring.jpa.hibernate.ddl-auto=update
# 如果需要,可以执行指定的sql文件进行建表
#spring.datasource.schema=sql/test.sql
# 如果需要,可以显示执行的sql语句
spring.jpa.show-sql=true
# 如果需要,可以格式化sql语句
spring.jpa.properties.hibernate.format_sql=true
然后,写一个实体类:
@Entity // 定义该类为实体类,SDJPA会根据该注解在数据库中建表等
@Table(name="t_user") // 实体类对应的表名
public class User implements Serializable {
private static final long serialVersionUID = 1L;
// oracle数据库主键的生成策略(sequence)
// @Id
// @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="myGenerator")
// @SequenceGenerator(name="myGenerator",sequenceName="my_seq")
@Id
@GeneratedValue
private Long id;
@Column(nullable=false, unique=true)
private String name;
@Column(nullable=false)
private Integer age;
@Enumerated(EnumType.STRING)
@Column(nullable=false)
private Gender gender;
}
最后,写一个Dao层接口,这个接口需要继承一个SDJPA的父类——JpaRepository<实体范型, 实体ID的范型>
,通过父类来实现该接口的方法。该接口的方法都是一个固定的写法。将该接口的实现类对象注入依赖后,即可使用其中的方法,而不需要开发者进行实现。