搭建简单的Spring-Data JPA项目

搭建简单的Spring-Data JPA项目可分为以下几个步骤:

第一步:创建Maven项目

首先需要创建一个Maven项目,然后在pom.xml中导入Spring-Data JPA以及Hibernate等相关依赖。

示例代码:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>2.3.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.28.Final</version>
</dependency>

第二步:配置数据源

在application.properties文件中配置数据源信息,可以使用H2或者MySQL等数据库。

示例代码:

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

第三步:定义实体类

根据需求定义实体类,使用@Entity注解标记实体类,使用@Id标记主键字段。

示例代码:

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;
    private Integer age;
    private String email;

    // getters and setters
}

第四步:定义Repository接口

定义Repository接口,继承JpaRepository或者其它继承自JpaRepository的接口,并在接口中声明自定义查询方法。

示例代码:

public interface UserRepository extends JpaRepository<User, Long> {

    List<User> findByName(String name);

    List<User> findByAgeGreaterThan(Integer age);

    User findByEmail(String email);
}

第五步:进行数据操作

在Service或Controller中注入UserRepository,并进行数据操作。

示例代码:

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> findByName(String name) {
        return userRepository.findByName(name);
    }

    public List<User> findByAgeGreaterThan(Integer age) {
        return userRepository.findByAgeGreaterThan(age);
    }

    public User findByEmail(String email) {
        return userRepository.findByEmail(email);
    }

    public User saveUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

第六步:测试运行

编写单元测试对以上接口进行测试运行,保证数据操作的正确性。

示例代码:

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {

    @Autowired
    private UserService userService;

    @Test
    public void testFindByName() {
        List<User> userList = userService.findByName("张三");
        Assert.assertTrue(userList.size() > 0);
    }

    @Test
    public void testFindByAgeGreaterThan() {
        List<User> userList = userService.findByAgeGreaterThan(18);
        Assert.assertTrue(userList.size() > 0);
    }

    @Test
    public void testFindByEmail() {
        User user = userService.findByEmail("zhangsan@qq.com");
        Assert.assertNotNull(user);
    }

    @Test
    public void testSaveUser() {
        User user = new User();
        user.setName("王五");
        user.setAge(20);
        user.setEmail("wangwu@qq.com");

        User newUser = userService.saveUser(user);
        Assert.assertNotNull(newUser.getId());
    }

    @Test
    public void testDeleteUser() {
        User user = new User();
        user.setName("赵六");
        user.setAge(25);
        user.setEmail("zhaoliu@qq.com");

        User newUser = userService.saveUser(user);
        userService.deleteUser(newUser.getId());
        User delUser = userService.findByEmail("zhaoliu@qq.com");
        Assert.assertNull(delUser);
    }
}

以上就完成了一个简单的Spring-Data JPA项目的搭建以及数据操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:搭建简单的Spring-Data JPA项目 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • struts2自定义拦截器的示例代码

    下面是关于“struts2自定义拦截器的示例代码”的完整攻略。 什么是Struts2自定义拦截器? 在Struts2中,拦截器(Interceptor)是用于拦截请求和响应的组件。Struts2框架中自带了许多默认的拦截器,如TokenInterceptor、ValidationInterceptor、ParamsInterceptor等。除此之外,我们还可…

    Java 2023年5月20日
    00
  • Java文件与类动手动脑实例详解

    下面是“Java文件与类动手动脑实例详解”的完整攻略。 1. 什么是Java文件与类? Java文件是以.java为扩展名的文件,它包含Java程序的源代码。而Java类则是这些源代码中定义的一个个类,它们是Java程序的基本构建块。 Java文件命名规范与类名一致,比如,名为MyClass的类,应该存在名为MyClass.java的Java文件中。 2. …

    Java 2023年5月19日
    00
  • 微信公众号服务号推送模板消息设置方法(后端java)

    下面是详细的攻略: 微信公众号服务号推送模板消息设置方法 开启模板消息功能 要使用模板消息功能,首先需要在公众号后台开启该功能。具体操作步骤如下: 登录公众号后台,在左侧菜单栏中选择“开发者工具”。 点击页面上方的“接口权限”选项卡,找到“模板消息”并开启该功能。 开启模板消息功能后,需要到“模板消息”选项中添加至少一个消息模板。在添加模板时需要提供模板的标…

    Java 2023年5月20日
    00
  • 关于spring web-mvc衍生注解

    下面是关于“关于Spring Web-MVC衍生注解”的完整攻略,包含两个示例说明。 关于Spring Web-MVC衍生注解 Spring Web-MVC是Spring框架的一个模块,用于开发Web应用程序。在Spring Web-MVC中,我们可以使用一些衍生注解来简化代码。本文将介绍一些常用的衍生注解。 @GetMapping和@PostMapping…

    Java 2023年5月17日
    00
  • JavaScript实现城市选择控件的效果

    实现城市选择控件的效果可以分为以下几个步骤: 1. 编写HTML代码 通过HTML代码,我们可以创建城市选择控件需要的元素。示例代码如下: <input type="text" id="city-picker" placeholder="请选择省/市/区" readonly> <d…

    Java 2023年6月15日
    00
  • java打印指定年月的日历

    Java 打印指定年月的日历 1. 概述 本教程将介绍如何使用 Java 打印指定年月的日历,本教程不需要使用任何第三方库。 2. 步骤 2.1 步骤一:获取指定日期的 Calendar 对象 java.util.Calendar 类是表示日历的抽象类。它提供了许多静态工厂方法来获取实例, 例如 getInstance() 返回一个默认时区的当前日期和时间的…

    Java 2023年5月26日
    00
  • Java Filter过滤器的使用教程

    Java Filter过滤器的使用教程 Java Filter是Servlet规范提供的一种过滤器机制,用于在Servlet请求和响应之前对请求进行过滤和处理。Filter的使用可以提高Web应用程序的安全性和性能。在本文中,我们将详细讲解Java Filter的使用教程。 Filter过滤器的基本概念 Filter是Servlet中的一种过滤器机制,主要用…

    Java 2023年6月15日
    00
  • Java数组的去重

    Java数组去重是一个非常基础和常见的操作,本文将介绍两种常见的去重方法:使用Set去重和使用Stream去重。 使用Set去重 使用Set来去重是最为常见的一种方式,其原理很简单,就是将数组转换为Set,再将Set转换为数组即可。 示例代码如下: public static int[] removeDuplicates(int[] arr) { Set&l…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部