JPA(Java Persistence API,Java持久化应用编程接口)是Java的一种持久化规范。Spring Data JPA(以下简称SDJPA)是Hibernate框架在Spring体系中的一种结合,是实现了JPA规范的全ORM框架。与MyBatis相比,该框架能够根据具体关系型数据库自动生成SQL语句,且与Spring框架整合性好。

    在Spring Boot中要使用SDJPA,需要首先在Boot配置文件(Application)中配置数据库连接池,然后再配置几个与SDJPA有关的参数:

    1. # 如果需要,可以进行自动建表
    2. spring.jpa.hibernate.ddl-auto=update
    3. # 如果需要,可以执行指定的sql文件进行建表
    4. #spring.datasource.schema=sql/test.sql
    5. # 如果需要,可以显示执行的sql语句
    6. spring.jpa.show-sql=true
    7. # 如果需要,可以格式化sql语句
    8. spring.jpa.properties.hibernate.format_sql=true

    然后,写一个实体类:

    1. @Entity // 定义该类为实体类,SDJPA会根据该注解在数据库中建表等
    2. @Table(name="t_user") // 实体类对应的表名
    3. public class User implements Serializable {
    4. private static final long serialVersionUID = 1L;
    5. // oracle数据库主键的生成策略(sequence)
    6. // @Id
    7. // @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="myGenerator")
    8. // @SequenceGenerator(name="myGenerator",sequenceName="my_seq")
    9. @Id
    10. @GeneratedValue
    11. private Long id;
    12. @Column(nullable=false, unique=true)
    13. private String name;
    14. @Column(nullable=false)
    15. private Integer age;
    16. @Enumerated(EnumType.STRING)
    17. @Column(nullable=false)
    18. private Gender gender;
    19. }

    最后,写一个Dao层接口,这个接口需要继承一个SDJPA的父类——JpaRepository<实体范型, 实体ID的范型>,通过父类来实现该接口的方法。该接口的方法都是一个固定的写法。将该接口的实现类对象注入依赖后,即可使用其中的方法,而不需要开发者进行实现。