购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 集成Spring Data JPA

本节主要介绍如何在Spring Boot中集成Spring Data JPA、服务层类开发,如何通过Spring Data JPA实现基本的增删改查功能,以及自定义查询方法等内容。

3.2.1 引入依赖

在Spring Boot中集成Spring Data JPA,首先需要在pom.xml文件中引入所需的依赖,具体代码如下:

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

在之前的章节中,我们已经在开发工具中安装好Maven Helper插件,所以大家可以通过该插件查看目前引入的所有依赖,如图3-2所示。

图3-2 my-spring-boot项目目录

3.2.2 继承JpaRepository

在pom.xml文件中引入依赖之后,我们在目录/src/main/java/com.example.demo. repository下开发一个AyUserRepository类,如图3-3所示,具体代码如下:

图3-3 Maven Helper查看pom依赖包

与此同时,我们需要在AyUser实体类下添加@Entity和@Id注解,具体代码如下:

3.2.3 服务层类实现

我们在my-spring-boot项目下继续开发服务层接口类和实现类:AyUserService和AyUserServiceImpl类,分别存放在目录/src/main/java/com.example.demo.service和/src /main/java/com.example.demo.service.impl下。具体代码如下:

接口类AyUserService定义了4个接口,findById和findAll用来查询单个和所有数据,delete用来删除数据,save同时具备保存和更新数据的功能。接口实现类AyUserServiceImpl的代码如下:

           @Resource(name = “ayUserRepository”)
           private AyUserRepository ayUserRepository;
           @Autowired
           @Qualifier(“ayUserRepository”)
           private AyUserRepository ayUserRepository;

3.2.4 增删改查分页简单实现

前面已经在服务层类AyUserService开发完增删改查方法,这一节将继续在类中添加分页接口,具体代码如下:

分页方法定义好之后,在类AyUserServiceImpl中实现该方法,具体代码如下:

     @Override
     public Page<AyUser> findAll(Pageable pageable) {
        return ayUserRepository.findAll(pageable);
     }

3.2.5 自定义查询方法

我们除了使用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中调用它们。

     List<AyUser> findByName(String name);
     List<AyUser> findByNameLike(String name);
     List<AyUser> findByIdIn(Collection<String> ids);

AyUserService继续添加这3个方法,具体代码如下:AyUserServiceImpl类添加这3个方法,具体代码如下:

提示 @Override注解不可以去掉,它可以帮助我们校验接口方法是否被误改。 hmyO1vkXXWiang8hwbPudXjTL9uO/7xfqvuOR6mKtvqPFzrynNR7163L/g1Fr8Xj

点击中间区域
呼出菜单
上一章
目录
下一章
×