1.介绍
spring data jpa是对hibernate的封装,适用场景没有复杂查询,不需要做查询优化,jpa自身已经实现简单crud
2.使用前提
引入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
3.做单表做简单crud
1)定义实体
@Getter
@Setter
@Entity
@Table(name = "user_laud")//表名
public class UserLaud implements Serializable {
/**
*
*/
private static final long serialVersionUID = -812230085268168414L;
@Id//主键
@Column(name = "laud_id")//列名
private Long laudId;
/**
* 用户id
*/
@Column(name = "uid")
private Long uid;
/**
* 昵称
*/
@Column(name = "nick_name")
private String nickName;
/**
* 头像
*/
@Column(name = "head_portait")
private String headPortrait;
/**
* 收货点赞数量
*/
@Column(name = "laud_amount")
private Integer laudAmount;
/**
* 客资id
*/
@Column(name = "dream_id")
private Long dreamId;
/**
* 许愿目的地
*/
@Column(name = "destination")
private String destination;
/**
* 版本号
*/
@Column(name = "version")
private Integer version;
}
2)定义repository
public interface UserLaudRepository extends CrudRepository<UserLaud, Long> {
}
注:jpa已经实现简单增删改查,只需要继承CrudRepository,这个类的第一个泛型表示实体,第二泛型参数表示主键类型
3)定义sevice
把UserLaudRepository 注入进来,调用基础增删改查方法了
4.CrudRepository方法简单介绍
1)单个新增或修改方法,传了主键就是修改,不是则为新增;参数为上面的实体,返回值为查完数据查询出来这个数据的实体
<S extends T> S save(S entity);
2)批量新增或修改
<S extends T> Iterable<S> saveAll(Iterable<S> entities)
3)根据主键查询数据
Optional<T> findById(ID id)
4)批量查询
Iterable<T> findAllById(Iterable<ID> ids);
5)根据主键删除
void deleteById(ID id);
6)删除所有数据
void deleteAll()