SpringBoot实战之SpringDataJPA
一丶什么是JPA
由于对象与关系数据库的范式不匹配
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则使用上面的引用,若使用了则使用下面的引用.
二丶定义JPA的实体对象
常用JPA注解
实体
- @Entity 注明这个类是一个实体 @MappedSuperclass 多个实体的父类
- @Table(name) 把实体和对应的表关联起来
主键
-
@Id
- @ GeneratedValue(Strategy,generator) 指定主键的生成策略和生成器
- @SequenceGenerator(name,sequenceName) 这是序列的生成策略:指明生成的是什么样的序列
例子
映射
- @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