一、JPA简介
Java持久性API(JPA)是Java的一个规范。 它用于在Java对象和关系数据库之间保存数据。 JPA充当面向对象的领域模型和关系数据库系统之间的桥梁。
由于JPA只是一个规范,它本身不执行任何操作。 它需要一个实现。 因此,像Hibernate,TopLink和iBatis这样的ORM工具实现了JPA数据持久性规范。
二、简单注解
- @Entity - 这是一个标记注释,表明这个类是一个实体,这个注释必须放在类名称上。
- @Table - 当实体类与其映射的数据库表名不同时需要使用@Table,该标注常用的属性是 name,用于指明数据库的表名。
- @Id - 位于持有持久标识属性地特定字段上。该字段被视为数据库中地主键。
- @Column - 用来标识实体类中属性与数据表中字段的对应关系
- @GeneratedValue - 为实体类生成一个唯一标识的主键,提供了主键的生成策略。
- @GeneratedValue - 为实体类生成一个唯一标识的主键,提供了主键的生成策略。
其中包含:
- strategy:主键生成策略
- generator:主键生成器
注解使用案例
package com.gg.domain;
import lombok.Data;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* @Author: {LZG}
* @ClassName: Book
* @Description: TODO
* @Date: 2022/7/3 16:53
**/
@Data
// 使用注解建立实体类和数据表之间的关系 name指向表名
@Table(name="tbl_book")
// 告诉JPA这是一个实体类,需要把它跟数据库中的表做映射
@Entity
public class Book {
// 标识这是一个主键字段
@Id
// 指定主键生成策略,GenerationType.IDENTITY就是对应到mysql中的数据自增策略
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
// 使用@Column映射类的属性和数据表的字段关系
// 当类的属性名和数据表的字段名一致时,此注解可以省略
@Column(name = "type")
private String type;
private String name;
private String description;
private String classifyId;
private BigDecimal price;
private Integer status;
private Integer amount;
}
三、依赖环境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>