Spring Data JPA是一种实现 JPA 存储库以在应用程序中轻松添加数据访问层的方法。 CRUD 代表创建、检索、更新、删除,它们是可以在数据库中执行的可能操作。在本文中,我们将看到一个示例,说明如何使用 Spring Data JPA 在 Spring Boot 应用程序中访问数据库(本文为 MySQL)中的数据。
为了学习如何创建一个 spring boot 项目,请参考这篇文章。
数据库是相互关联的数据的集合,有助于有效地从数据库中检索、插入和删除数据,并以表、视图、模式、报告等形式组织数据。因此,对于任何应用程序,数据库是其中之一最重要的模块,需要有一种与它通信的方式。因此,按照以下步骤使用 Spring Data JPA 访问数据库:
- 转到 spring initializr 并创建一个具有以下依赖项的新项目:
- 春网
- 弹簧数据 JPA
- MySQL 驱动程序
- 下载启动项目并将其导入到 IDE 中。
- 项目同步后,我们将创建一个模型类公司,注解@Entity ,这意味着该类映射到数据库中的表。添加数据类型与数据库中的列相同的数据成员,并生成构造函数和getter。将注释@Id添加到数据成员,该成员将作为表中的主键属性和@Generatedvalue(strategy = generationtype.auto)以自动增加主键属性。下面是这个类的实现:
@Entity public class Company { // Primary ID which increments // automatically when new entry // is added into the database @Id @GeneratedValue(strategy = GenerationType.AUTO) int id; String name; // In months int duration; String profile; // Can be 0 int stipend; boolean workFromHome; public Company() { } // Parameterized constructor public Company(String name, int duration, String profile, int stipend, boolean workFromHome) { this.name = name; this.duration = duration; this.profile = profile; this.stipend = stipend; this.workFromHome = workFromHome; } // Getters and setters of // the variables public int getId() { return id; } public String getName() { return name; } public int getDuration() { return duration; } public String getProfile() { return profile; } public int getStipend() { return stipend; } public void setId(int id) { this.id = id; } public boolean isWorkFromHome() { return workFromHome; }
- 现在,创建与注释@Repository将实现CrudRepository接口CompanyRepository。执行 CRUD 操作的函数将在界面中定义,如下所示:
@Repository public interface CompanyRepository extends CrudRepository
{ Company findById(int id); List findAll(); void deleteById(int id); } 注意:这些函数不会被实现,因为它们已经在CrudRepository 中实现了。
- 现在,我们将创建 REST API(GET、POST、PUT、DELETE),如下所示:
@RestController public class CompanyController { @Autowired private CompanyRepository repo; // Home Page @GetMapping("/") public String welcome() { return "" + "
WELCOME
" + ""; } // Get All Notes @GetMapping("/company") public ListgetAllNotes() { return repo.findAll(); } // Get the company details by // ID @GetMapping("/company/{id}") public Company getCompanyById( @PathVariable(value = "id") int id) { return repo.findById(id); } @PostMapping("/company") @ResponseStatus(HttpStatus.CREATED) public Company addCompany( @RequestBody Company company) { return repo.save(company); } @DeleteMapping("/delete/{id}") public void deleteStudent( @PathVariable(value = "id") int id) { repo.deleteById(id); } @PutMapping("/company/{id}") public ResponseEntity - 现在,打开 application.properties 文件并添加以下代码。将database_name替换为包含表Company的数据库,将username替换为 mysql 服务器的用户名(默认为 root),将password替换为 mysql 密码。
spring.datasource.url=jdbc:mysql://localhost:3306/database_name
spring.datasource.username=username
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update - 这样就完成了与数据库建立连接的过程。现在,我们构建并运行项目并调用不同的 API。
注意: Postman 通常被首选用于测试调用 API,因此我们使用 postman 工具来测试项目。
输出:
- 数据库:
- 使用 POSTMAN 集合进行测试: