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()