JPA 注解CrudRepository、PagingAndSortingRepository和JpaRepository
- CrudRepository用来做增删改查操作
User是实体类,Integer是实体类中id的类型
比如我有一张表:
实体类如下:
@Data注解是一个可以代替get/set方法的注解,不想用的话可以正常写get/set方法跳过此步骤
使用这个注解可以省去get/set方法的步骤,使用依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
其次是下载lombok插件:
输入lombok之后会出现lombok的install按钮点击现在,提示重启idea,点击确定即可
@Table注解关联表nname属性写上表名即可
@Entity指出这个类为实体类
以上是实体类的注解
属性的注解如下:
@Id声明此属性是主键
@Column(name = “id”)当实体的属性与其映射的数据库表的列不同名时需要使用@Column 标注说明
@GeneratedValue(strategy = GenerationType.IDENTITY)在本类中为主键的自增(添加时如果不想写id,可以设置为自增)
注解详细的使用https://www.cnblogs.com/a8457013/p/7753575.html
实体类定义完毕就开一进行增删改查操作了
定义一个借口继承CrudRepository
User为实体类名,Integer为id类型
继承之后,再写一个类注入此接口
就可以通过此接口的增删改查方法进行操作
全查方法findall:
返回类型是Iterable类型 可以用foreach循环输出
添加方法save:
传入参数直接添加
根据id删除方法:
传入id即可
根据id查找:
testRespotoreCurd.findById(id)之后有一个.get()方法作用是作用是转换成User对象
因为不用的话返回的是
所以在最后添加一个.get()方法即可
修改和添加是同一个方法,声明一个对象,把想修改的数据添加上,不想修改的数据保持不变即可
比如:
修改id为1的数据
声明User对象 设置id为1
把对象传参给save方法
成功
以上是使用CrudRepository接口做增删改查的操作
-
PagingAndSortingRepository
当我们需要用到分页查询的时候,我们定义的接口需要继承PagingAndSortingRepository接口来实现分页
该接口提供了分页与排序功能
首先定义接口,继承PagingAndSortingRepository
声明完之后,定义一个类注入此接口
就可以使用分页和排序的方法了
PagingAndSortingRepository详细使用:https://blog.youkuaiyun.com/sinat_35821285/article/details/79782171 -
JpaRepositor
可以用JpaRepositor的 @Query做自定义方法
注入此接口
调用接口的方法即可
有关CrudRepository、PagingAndSortingRepository和JpaRepository更详细的使用:https://blog.youkuaiyun.com/fly910905/article/details/78557110