首页 >Java >java教程 >Java存储库

Java存储库

WBOY
WBOY原创
2024-08-30 15:40:28586浏览

在Java Spring框架中,通常使用基于JPA的存储库。这些存储库对于管理数据库操作至关重要,并且是 Spring Data JPA 模块的一部分。存储库定义了一种新的优雅方法,用于存储、更新和提取后端 JAVA 应用程序存储的数据。所有 CRUD(创建、读取、更新和删除)操作都可以借助存储库接口来实现。 JPA是JAVA Persistence API(应用程序接口)的缩写。顾名思义,JPA 有助于将 java 对象持久保存在关系数据库中。有两种方法可以做到这一点,它们是:

广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

  1. 关系表使用映射类映射到子系统。
  2. EntityManager API。

在本文中,我们将了解语法以及 JPA 存储库在 CRUD 操作中的使用。

语法:

导入所有必要的库并将其链接到项目类路径中的 Spring、Persistence 对象和 Java EE 后,下一步就是通过扩展“JpaRepository”接口来创建接口。这是存储库库的扩展,包含其他存储库,如 CrudRepository 和 PagingAndSortingRepository,以及存储库的基本功能。

注意: POM.XML 应该存在于您的项目中才能使用 JPA 应用程序。

结构:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import net.guides.springboot.jparepository.model.Employee;
@Repository
public interface repositoryname extends JpaRepository<Parameter 1 column name, parameter 2 data type>
{
}
//Invocation of the interface created above.
private repositoryname RepositoryName;
@Override
//Different functions from JPA library to be used for enabling transactions with databases.
public void run(String…... arguments) throws Exception {
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
logger.info("number of elements in table now: {}", RepositoryName.count());

JPA 存储库如何工作?

这些实现对于在使用 Java 开发的 Web 或桌面应用程序中实现持久性至关重要。要使这些接口正常工作,必须将所有依赖库加载到类路径中。 创建接口后,可以使用“save()”、“count()”、“info()”、“findAll()”、“sort()”等函数来完成数据查询或所需的操作。数据操纵。我们需要设置一个数据库,以便通过 java 应用程序插入、更新或删除下面表中的值。使用存储库可以轻松处理数据库中的数据以及安全交易。

Java 存储库示例

对于初学者来说,实现 JPA 存储库是一个复杂的时间项目。所有链接库、JAR、依赖项、服务器设置和数据库设置都是先决条件。

文件:pom.xml

代码:可以从 https://start.spring.io 下载。人们可以生成一个文件并在根据系统和应用程序要求选择值后下载它。

注意: 假设 H2 数据库中已存在名为“user”的表的数据库,其中包含“Id”和“Name”两列。 “Id”是系统自动生成的主键。

文件:UserControl.java

代码:

package test.controller;
import test.model.User
import test.repository.UserJpaRespository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UsersControl {
@Autowired
private UserJpaRespository userJpaRespository;
@GetMapping(value = "/all")
public List<User> findAll() {
return userJpaRespository.findAll();
}
@PostMapping(value = "/load")
public User load(@RequestBody final User users) {
userJpaRespository.save(users);
return userJpaRespository.findByName(users.getName());
}
}

文件:User.java

代码:

package test.model
import test.controller;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
@Entity
public class User {
private Long id;
private String name;
@Id
@GeneratedValue
public Long getId() {
return id;}
public void setId(Long id) {
this.id = id;}
public String getName() {
return name;}
public void setName(String name) {
this.name = name;}
}

文件:UserJPARepository.java

代码:

package test.repository;
import test.controller;
import package.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
@Component
public interface UserJpaRespository extends JpaRepository<User, Long>{
}

文件:Implementation.java

代码:

package test.implementation;
import static org.hamcrest.CoreMatchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.ArrayList;
import java.util.List;
import test.controller;
import org.junit.Before;
import org.junit.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.model.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.repository.UserJpaRespository;
@RunWith(SpringRunner.class)
public class Implementation {
private User user;
@MockBean
private UserJpaRespository userJpaRespository;
@Before
public void setUp()
{
user = new User();
user.setId(1l);
user.setName("Virat");
}
}

输出:

Java存储库

这里的值被插入到数据库中。

说明

第一个文件“UserControl”包含有关使用“@GetMapping()”和“@PostMapping”等 JPA 函数提取或存储值的详细信息,这些函数需要一些基本文件来支持它的工作。这些支持文件是 User.java 和 UserJPARepository.java。

文件“User.java”以Java对象的形式维护数据库的结构,允许使用Java持久性对象访问数据库。要开始处理该项目,您必须使用步骤 1 中提供的源代码生成“pom.xml”文件。在提供的输出中,“pom.xml”文件负责设置项目所需的所有依赖项。依赖项包含“spring框架”相关数据和持久化对象相关数据。 UserJPARepository.java 文件通过扩展内置库 JpaRepository 来启动 JPA 存储库。

结论

JPA 存储库非常有用,因为它提供了一个通用平台来用 JAVA 语言创建查询,但可以与下面的任何数据库一起使用。它通过提供优雅的函数来完成库支持的任务,从而减少代码行数。它减少了“样板”代码的使用,从而改善了外观和执行速度。

以上是Java存储库的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Range in Java下一篇:Java Dictionary