在SpringBoot中,通过Spring Data JPA 和 Spring Data Rest可以快速构建出一个RESTFul应用。
关于Spring Data JPA:JPA是一种规范,而Spring Data JPA可以有效简化关系型数据库访问代码。
关于Spring Data:Spring Data是Spring的一个子项目,致力于简化数据库访问。
JPA中有种定义,将Java对象【POJO】映射到数据库。
@Entity(name=“t_book”)
表明该类为一个实体类,它默认对应数据库中的表名是t_book,在项目启动时会根据该类自动生成一张表。
【如果不配置name,默认表名为类名】
@Id
表示该属性是一个主键,@GeneratedValue(strategy = GenerationType.IDENTITY)表示主键自动生成,strategy表示主键生成策略。
【在进行这个节点测试之前,需要把代码的其他部分注释掉,之后会有一些自定义的功能】
在数据库添加几条测试数据
打开Postman,输入http://localhost:8080/books
【默认请求路径都是实体类名小写加s】
按照id查询
/**
* 默认请求路径都是实体类名加s
*
* 自定义请求类名:
* @RepositoryRestResource (path = "bs",collectionResourceRel = "bs",itemResourceRel = "b")
* path属性指用bs替代原先的books,collectionResourceRel表示将返回的json集合中的book集合改为bs,
* itemResourceRel表示将单个book的key改为b
*/
@RepositoryRestResource(path = "bs",collectionResourceRel = "bs",itemResourceRel = "b")
public interface BookRepository extends JpaRepository<Book, Integer> {
访问:http://localhost:8080/bs
/**@RestResource注解定义:默认请求路径就是方法名,path可自定义路径
* http://localhost:8080/bs/search/author?author=余华
* http://localhost:8080/bs/search/name?name=白夜行
* @param author
* @return
*/
@RestResource(path = "author",rel = "author")
List<Book> findByAuthorContains(@Param("author") String author);
@RestResource(path = "name",rel = "name")
Book findByNameEquals(@Param("name") String name);
https://github.com/HCJ-shadow/SpringBootPlus