Spring Data JPA是基于Spring Data 的Repository之上,可以将Repository自动输出为REST资源。目前Spring Data REST支持将Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data Gemfire以及Spring Data Cassandra的Repository自动转换成REST服务。
简单点说,Spring Data REST把我们需要编写的大量REST模版接口做了自动化实现。
在Spring boot中使用Spring Data REST只需引入spring-boot-starter-data-rest的依赖,无须任何配置即可使用。
首先,新建一个项目,

首先在项目里面建一个实体类,对应数据库的SYS_USER表,表里只有id和name两个字段:

然后新建一个jpa接口,

注意:此jia接口的写法和前面jpa文章里面的一模一样,唯一不同是注解使用了@RepositoryRestResource ,在注解中定义了path参数,这些在转化成rest接口的时候会用到。
上面两个简单的代码已经实现了SysUser实体类的RESTFul风格的所有接口。
在数据中加入三个数据:

查询
项目端口号为8032,用户的jpa的path为users,那么访问/users就可以查到所有的用户,如下:

分页查询
加上参数可以实现分页,比如每页一条数据,查第二页,连接为 /users?page=1&size=1(分页页码从0开始):

可以看到我们只写了一个实体类和一个jpa接口,就帮我们实现了restful接口的查询。并且分页中还附带首页尾页上一页下一页的连接。
新增数据
Spring Data REST的功能还不止如此,下面展示新增方法,链接为/users,接口调用如下:

可以看到直接输入属性就可以增加一个用户,

根据id查询
返回的新增用户信息带一个连接,后面跟的是新用户的id,可以推测出根据id查询用户的连接是/users/id:

排序
排序查询的连接为:/users?sort=字段名,desc/asc,如下:

更新
更新操作与新增操作类似,不过参数中要带上主键:

数据库中变为:

或者使用put访问:

数据库中变为:

根据id删除数据
删除数据使用delete形式:

查看数据库:

数据已被删除。
自定义查询方法
在jpa接口中定义一个根据name查询的方法:

注意,此处使用的注解为@RestResource,path参数为name,表示路径为name,接口调用如下:

可以看到,users后面跟了一个search,然后是定义的path,后面是name参数,自定义查询的路径要注意。
模糊查询
自定义模糊查询,查询以参数name为靠头的name字段的表数据,自定义方法如下:

根据注解,查询链接为 /users/search/nameStartsWith?name=参数,如下:

这就是简单的模糊查询。
以上就是springboot整合spirng data rest 的简单使用。
代码地址: https://gitee.com/blueses/spring-boot-demo
网友评论