SpringBoot实战之SpringDataJPA

一丶什么是JPA

由于对象与关系数据库的范式不匹配

SpringBoot实战之SpringDataJPA

Hibernate

  • 一块开源的对象关系映射(Object/Relational Mapping)框架
  • 将开发者从95%的长剑数据持久化工作中解放出来
  • 屏蔽了底层数据库的各种细节
    JPA的全称是Java Persistence API
    JPA为对象关系映射提供了一种基于POJO的持久化模型
  • 简化数据持久化代码的开发工作
  • 为java社区屏蔽不同持久化API的差异
    Spring Data
    在保留底层存储特性的同时,提供相对一致的,基于Spring的变成模型
    主要模块
  • Spring Data Commons
  • Spring Data JDBC
  • Spring Data JPA
  • Spring Data rEDIS
    若未使用SpringBoot则使用上面的引用,若使用了则使用下面的引用.SpringBoot实战之SpringDataJPA

二丶定义JPA的实体对象

常用JPA注解

实体

  • @Entity 注明这个类是一个实体 @MappedSuperclass 多个实体的父类
  • @Table(name) 把实体和对应的表关联起来

主键

  • @Id

    • @ GeneratedValue(Strategy,generator) 指定主键的生成策略和生成器
    • @SequenceGenerator(name,sequenceName) 这是序列的生成策略:指明生成的是什么样的序列

例子

SpringBoot实战之SpringDataJPA

映射

  • @Column(name,nullable,length,insertable,updatable) 实体和表字段的映射关系
  • @JoinTable(name) 表关联 @JoinColumn(name) 字段关联

关系

  • @OneToOne @OneToMany @ManyToOne @ManyToMany 表的各种对应关系
  • @OrderBy 排序

Project Lombok

Project Lombok可以自动嵌入IDE和构建工具,提升开发效率
常用功能

  • @Getter / @Setter
  • @ToString
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor 构造方法
  • @Data 包含了getter Setter 和 ToString
  • @Builder
  • @Slf4j / @CommonsLog / @Log4j