springdata jpa快速构建RESTful

Posted 结构化思维wz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springdata jpa快速构建RESTful相关的知识,希望对你有一定的参考价值。

springdata jpa +springdata rest

只需要添加依赖:

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>

写一个实体类+dao

package com.example.jpademo.model;

import javax.persistence.*;

/**
 * @author: 王泽
 * 用@entity标注的类必须要有主键@id
 */

@Entity(name = "t_book")  //标记为实体类并且在数据库中创建的表叫t_book
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) //自动生成主键
    private long id;
    @Column(name = "bookname") //可以配置一系列数据库配置
    private String name;
    private String author;

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\\'' +
                ", author='" + author + '\\'' +
                '}';
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
}

public interface BookDao extends JpaRepository<Book, Long> {}

使用postman进行测试:

默认接口就是类名+s ====》books

如果想换,在dao接口上定义注解@RepositoryRestResource(path=“自定义名”)

get查询操作

  • 查询所有

    http://localhost:8080/books
    

在这里插入图片描述

  • 查询byID

    http://localhost:8080/books/6
    

    在这里插入图片描述

  • 分页查询

    默认的什么都不写的分页情况:

       "page": {
            "size": 20,
            "totalElements": 11,
            "totalPages": 1,
            "number": 0
        }
    

    自定义

    http://localhost:8080/books?page=0&size=3
    

在这里插入图片描述

  • 排序

    http://localhost:8080/books?page=0&size=3&sort=id,desc
    

在这里插入图片描述

post请求添加数据

添加数据:

在这里插入图片描述

put修改数据

在这里插入图片描述

delete删除

http://localhost:8080/books/13

自定义的方法接口

满足命名规范的:

      //根据author查询book
    List<Book> getBookByAuthorEquals(@Param("author") String author);

用search查看自定义的接口都有哪些

在这里插入图片描述

点击相应方法查询

在这里插入图片描述

dao中常用注解

  • @RestResource

在这里插入图片描述
path指的是路径中的名字,就是search中搜索出来的href中的路径

rel是查出来的方法名,不影响使用

    @RestResource(path ="byname")
    //根据author查询book
    List<Book> getBookByAuthorEquals(@Param("author") String author);

在这里插入图片描述

  • 屏蔽默认方法

    只需要自己重写方法 并且加入@RestResource(exported=false)

  • @RepositoryRestResource

    自定义查询的数据名,books 可以改,book也可以改

properties中的配置

在这里插入图片描述

以上是关于springdata jpa快速构建RESTful的主要内容,如果未能解决你的问题,请参考以下文章

尚硅谷 --佟刚 SpringData JPA

SpringData JPA实现CRUD,分页与多参数排序

整合SpringData JPA

SpringData JPA之方法名查询的关键字表

构建RESTful服务(使用Spring Data JPA)

spring-data-jpa快速入门——