Java开发工具:
创建一个用于CRUD操作的Spring Data存储库
上一节我们讲了如何创建员工实体!现在我们已经创建了Employee实体,我们需要一种方法来执行我们的CRUD(创建、读取、更新、删除)操作。幸运的是,Spring Data JPA通过Repositories提供了所有的基本操作。让我们看看它们是如何工作的。
在项目窗口中,我们将选择com.jetbrains.springdatajpaapp包,Windows/Linux下按Alt+Insert,macOS下按。选择Java类。我们把它叫做EmployeeRepository,这次我们选择接口,然后按回车键。为了使我们的接口成为一个库,我们需要它扩展CrudRespository<T, ID>接口,通用参数是我们的实体类和实体的id类型。所以对于我们的应用程序,我们的存储库接口定义为:public interface EmployeeRepository extends CrudRepository<Employee, Long>。
我们将使用这个EmployeeRepository接口在我们的应用程序代码中执行CRUD操作。由于我们扩展了CrudRepository,我们可以默认获得基本的CRUD方法。例如,我们可以调用save方法将一个Employee对象插入我们的数据库中。我们还可以调用findAll方法来列出雇员表中的所有雇员。当我们编写应用逻辑时,我们将看到如何做到这一点。
在大多数应用程序中,你会发现自己想要做的事情比CrudRepository接口默认提供的要多。例如,假设我们想找到所有姓氏中有空格的员工。你当然可以写一个SQL查询来做到这一点。然而,更简单的方法是利用Spring Data JPA的优势,它允许你在存储库中创建方法,这些方法将根据你的方法名称被翻译成查询。
例如,假设我们想添加一个方法,用于查找所有姓氏中有某个字符串的员工。我们将进入EmployeeRepository接口,开始声明我们的方法。我的方法将返回一个雇员的列表,所以我们将使用List<Employee>作为我们的返回类型。然后,我们需要指定一个方法名,它有两个部分:介绍者和标准。我们可以在IntelliJ IDEA中使用Ctrl+Space来查看介绍者的方法建议列表。

选择findEmployeesBy。然后,我们将再次点击Ctrl+Space,查看可供选择的标准列表。

我们将选择LastNameContaining. 最后,我们将声明一个 String 方法参数,表示我们要检查的字符串。我们现在有一个方法来查找姓氏包含所提供字符串的所有员工。
你可能会想:如果我已经定义了这个接口,我就不需要实现它吗案是不。Spring Data JPA 会为您处理这些!您需要做的就是定义您的 Repository 接口并按照 Spring Data 约定声明您的方法。随着您添加更多方法,如果您在方法名称中出错,IntelliJ IDEA 会指出。例如,如果我们尝试创建一个方法来查询具有不正确LName属性的员工,IntelliJ IDEA 会给我们一个错误提示Cannot resolve property LName。

Intellij idea运行最终结果
您的EmployeeRepository界面应如下所示:
package com.jetbrains.springdatajpaapp;import org.springframework.data.repository.CrudRepository;import java.util.List;public interface EmployeeRepository extends CrudRepository<Employee, Long> { List<Employee> findEmployeesByLastNameContaining(String str);}
点击查看更多IntelliJ IDEA入门教程、案例开发、实时资讯!
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!