搭建简单的Spring-Data JPA项目

以下是详细讲解“搭建简单的Spring-Data JPA项目”的完整攻略。

一、准备环境

首先你需要安装好下列环境:

  1. JDK
  2. IDE(比如IntelliJ IDEA、Eclipse等)
  3. Maven(或Gradle)

二、创建项目

1.使用IDE新建Maven项目

使用IDE(以IntelliJ IDEA为例)创建一个Maven项目,并添加以下依赖项:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.3.5</version>
</dependency>

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

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

<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <version>1.4.200</version>
</dependency>

2.配置application.yml文件

在resources文件夹下创建application.yml文件,添加以下内容:

spring:
  datasource:
    url: jdbc:h2:mem:test
    driverClassName: org.h2.Driver
    username: sa
    password:
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: create-drop # 创建或删除表
    show-sql: true # 将SQL语句在控制台打印出来

三、创建实体类

创建一个实体类,比如:

@Entity
@Table(name = "t_user")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

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

    private String username;

    private String password;

    private Integer age;

    private String email;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

    @Version
    private Integer version;
}

这里使用了Lombok库中的@Data注解,省略了getter/setter方法。同时,为了方便起见,也引入了和JPA相关的注解(比如@Entity、@Table等)。

四、创建Repository

创建一个简单的Repository接口,比如:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

    User findByUsername(String username);

    List<User> findByAgeGreaterThan(Integer age);
}

这里使用了Spring Data JPA的JpaRepository,通过继承该接口,就可以获得一些常用的CRUD方法。同时,也定义了两个基于特定查询条件的方法。

五、使用测试数据

为了方便起见,可以在项目启动时插入一部分测试数据,比如:

@Component
public class TestDataInitializer implements ApplicationRunner {

    private final UserRepository userRepository;

    public TestDataInitializer(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public void run(ApplicationArguments args) {
        User user1 = new User();
        user1.setUsername("Alice");
        user1.setPassword("123456");
        user1.setAge(20);
        user1.setEmail("alice@example.com");
        user1.setCreatedAt(LocalDateTime.now());
        user1.setUpdatedAt(LocalDateTime.now());

        userRepository.save(user1);

        User user2 = new User();
        user2.setUsername("Bob");
        user2.setPassword("123456");
        user2.setAge(25);
        user2.setEmail("bob@example.com");
        user2.setCreatedAt(LocalDateTime.now());
        user2.setUpdatedAt(LocalDateTime.now());

        userRepository.save(user2);
    }
}

六、示例

1.保存数据

@Service
public class UserService {

    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

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

2.查询数据

@Service
public class UserService {

    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public User getUserByUsername(String username) {
        return userRepository.findByUsername(username);
    }

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

通过findByUsername和findByAgeGreaterThan这两个自定义的查询方法,可以非常方便地查询想要的数据。

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

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JavaEE Cookie的基本使用细节

    一、什么是Cookie? Cookie是Web开发中经常使用的一种技术,实现了将一些客户端数据保存在客户端本地上的功能,例如“购物车”等功能。 在JavaEE中,通过HttpServletResponse类对其进行操作。 二、Cookie的基本用法 1.首先需要获取 HttpServletResponse 对象,然后调用它的 addCookie() 方法,将…

    Java 2023年6月15日
    00
  • java中分组统计的三种实现方式

    Java中实现分组统计有三种方式,分别是使用Map集合、Java8流式API和SQL语句。下面将分别介绍这三种方式的实现方法。 使用Map集合实现分组统计 首先创建一个Map集合,用于存储分组统计的结果。 循环遍历需要统计的数据,对于每一条数据,使用特定的分组字段作为Map的Key,如果Key已经存在,则将对应的值进行累加,如果Key不存在,则新建Key并将…

    Java 2023年5月26日
    00
  • 利用JSP session对象保持住登录状态

    利用JSP的session对象可以实现用户登录状态的保持和管理,下面是完整的攻略: 创建登录页面 创建一个简单的登录页面,包含一个用户名和密码的表单,在提交时向服务器发送POST请求。 示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu…

    Java 2023年6月15日
    00
  • springboot log4j2不能打印框架错误日志的解决方案

    我们先来介绍一些概念: Spring Boot:Spring Boot 旨在帮助您创建基于生产的最小限度的应用程序,使用 Spring 平台和第三方库,少量配置的方式,快速启动和运行应用程序。Spring Boot 提供了基础的生产级特性(例如,内嵌 Tomcat,配置管理,或者添加重量级依赖项)。 Log4j2:是目前业界使用广泛的日志框架之一,它提供了丰…

    Java 2023年5月20日
    00
  • 基于Spring Security的Oauth2授权实现方法

    下面是详细讲解“基于Spring Security的Oauth2授权实现方法”的完整攻略。 什么是OAuth2 OAuth2是一个授权协议,可以使用户在第三方应用中提供安全的访问API和资源,而无需将用户凭证(例如,用户名和密码)直接提供给第三方应用。 OAuth2的流程通常包括以下步骤: 第三方应用向资源服务器申请访问API的授权; 资源服务器向用户询问授…

    Java 2023年5月20日
    00
  • Spring Boot 快速搭建微服务框架详细教程

    下面我来详细讲解“SpringBoot快速搭建微服务框架详细教程”的完整攻略。 一、前置条件 在开始快速搭建微服务框架之前,需要确保已经安装好以下环境: JDK 8或以上版本 Maven IntelliJ IDEA或其他Java开发IDE工具 二、搭建微服务框架 1. 创建SpringBoot项目 在IntelliJ IDEA中创建新项目,选择Spring …

    Java 2023年5月15日
    00
  • Java中的Checked异常有哪些?

    Java中的Checked异常 在Java程序设计中,异常是无法避免的,可能是程序中的代码出现了错误,也可能是其他外部因素造成的异常。其实,Java中的异常分为两类:Checked异常和Unchecked异常。其中,Checked异常必须在代码中进行处理,否则程序无法编译通过。在本篇攻略中,我们来详细讲解Java中的Checked异常。 Checked异常的…

    Java 2023年4月28日
    00
  • Spring Boot 配置文件详解(小结)

    “SpringBoot配置文件详解(小结)”包括了Spring Boot中常见的配置文件的使用方法,以及如何配置不同的环境变量。 主要内容 1. 配置文件 Spring Boot中的配置文件,主要用于存储应用程序的配置信息。Spring Boot通过注入配置文件中的属性值,来控制应用程序的行为。常见的配置文件有application.yml和applicat…

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