本节主要介绍如何在Spring Boot中集成Spring Data JPA,服务层类开发,如何通过Spring Data JPA实现基本增删改查功能,以及自定义查询方法等内容。
在Spring Boot中集成Spring Data JPA,首先需要在pom.xml文件中引入所需的依赖,具体代码如下:
在之前的章节中,我们已经在开发工具中安装好Maven Helper插件,所以可以通过该插件查看目前引入的所有依赖,具体如图3-2所示。
图3-2 Maven Helper查看pom依赖包
在pom.xml文件中引入依赖之后,我们在目录/src/main/java/com.example.demo.repository下开发一个AyUserRepository类,如图3-3所示。
图3-3 spring-boot-book-v2项目目录
具体代码如下:
与此同时,我们需要在AyUser实体类下添加@Entity和@Id注解,具体代码如下:
我们在spring-boot-book-v2项目下继续开发服务层接口类和实现类:AyUserService和AyUserServiceImpl类,它们分别存放在目录/src/main/java/com.example.demo.service和/src/main/java/com.example.demo.service.impl下。具体代码如下:
接口类AyUserService定义了4个接口,findById和findAll用来查询单个和所有数据,Delete用来删除数据,Save同时具备保存和更新数据的功能。接口实现类AyUserServiceImpl代码如下:
上一节,我们已经在服务层类AyUserService中开发完增删改查方法,这一节,我们将继续在类中添加分页接口,具体代码如下:
分页方法定义好之后,在类AyUserServiceImpl中实现该方法,具体代码如下:
我们除了使用JpaRepository接口提供的增删改查分页等方法之外,还可以自定义查询方法。下面在AyUserRepository类中添加几个自定义查询方法,具体代码如下:
在AyUserRepository中,我们自定义了3个查询的方法。从代码可以看出,Spring Data JPA为我们约定了一系列的规范,只要按照规范编写代码,Spring Data JPA就会根据代码翻译成相关的SQL语句,进行数据库查询。比如,可以使用findBy、Like、In等关键字,其中findBy可以用read、readBy、query、queryBy、get、getBy来代替。关于查询关键字的更多内容,可以到官方网站(https://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/)查看,里面有详细的内容介绍,这里就不一一列举了。
AyUserRepository类中自定义查询方法开发完成之后,可分别在类AyUserService和类AyUserServiceImpl中调用它们。
在AyUserService类中继续添加这3个方法,具体代码如下:
在AyUserServiceImpl类中添加这3个方法,具体代码如下:
@Override注解不可去掉,它可以帮助校验接口方法是否被误改。