搭建简单的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日

相关文章

  • Java有效处理异常的三个原则

    Java有效处理异常的三个原则,分别是:及早捕获、适当处理和完整释放资源。下面我将详细为您讲解这三个原则的具体内容和攻略。 一、及早捕获 及早捕获指的是,在程序运行时,应尽可能地在可能产生异常的地方进行异常捕获,防止异常向上传播导致程序崩溃。具体攻略如下: 在可能产生异常的方法或代码块中使用 try-catch 语句捕获异常,并在 catch 语句中打印异常…

    Java 2023年6月15日
    00
  • Layer弹出层动态获取数据的方法

    Layer弹出层是一款基于jQuery的Web弹出组件,它具有美观、易用、功能强大的特点。在开发时,可能需要在弹出层中展示动态获取的数据。本攻略将详细说明“Layer弹出层动态获取数据的方法”。 步骤1:引入jQuery库和layer.js文件 Layer弹出层组件基于jQuery,使用前需要先确认页面中已经引入了jQuery库,以便后续使用。 <!-…

    Java 2023年6月16日
    00
  • 基于Java向zip压缩包追加文件

    下面我将为你详细讲解基于Java向zip压缩包追加文件的完整攻略。 1. 前置条件 在介绍具体的操作步骤之前,我们需要先确保以下环境和工具已经准备好: JDK 1.8 或更高版本 Maven 3.1 或更高版本 一个已经存在的zip压缩包 2. 操作步骤 2.1 引入依赖 首先,我们需要在Maven的pom.xml文件中引入以下依赖: <depende…

    Java 2023年5月31日
    00
  • Java实现中文算数验证码的实现示例(算数运算+-*/)

    下面我来为你详细讲解Java实现中文算数验证码的完整攻略。 思路 实现中文算数验证码,思路如下: 生成指定位数(如四位)的随机算式和结果; 将随机数字与其对应的中文词组成一个map,以便后面进行替换; 将算式中的数字替换为对应的中文; 将结果数字同样替换为对应的中文; 将算式和结果拼接成字符串,并返回到前端展示。 示例 下面是Java实现中文算数验证码的示例…

    Java 2023年5月20日
    00
  • Spring常用配置及解析类说明

    下面是“Spring常用配置及解析类说明”的详细攻略。 1. Spring常用配置 1.1 XML配置 Spring框架最初是以XML配置为主的,XML配置的方式包括声明bean和对bean进行依赖注入两个方面。 1.1.1 声明bean 在XML配置文件中,声明bean的方式如下: <bean id="beanId" class=…

    Java 2023年5月19日
    00
  • SpringData JPA基本/高级/多数据源的使用详解

    SpringData JPA基本/高级/多数据源的使用详解 简介 SpringData JPA是Spring框架下的数据访问层框架,它有很多特点:自定义查询方式、事务管理、动态查询语句生成、性能优化等。在本篇文章中,我们将会深入介绍SpringData JPA的基本用法、高级用法以及多数据源的使用详解。 基本用法 1. 实体类定义 在使用SpringData…

    Java 2023年6月2日
    00
  • Java IO之包装流详解

    Java IO之包装流详解 Java中的IO(输入输出)操作可以通过流(Stream)的形式进行。流分为节点流和处理流,其中处理流又称为包装流。本文主要介绍Java IO中的包装流,包括作用、示例和常见的包装流。 包装流的作用 包装流是对节点流的装饰,它包裹一个已有的节点流并且拥有同样的类型,但提供了更多的功能。包装流常常用于流的串联,通过多个处理流的组合可…

    Java 2023年5月26日
    00
  • 一篇文章带你玩转Spring bean的终极利器

    一篇文章带你玩转 Spring bean 的终极利器 Spring 是一个非常流行的 Java 开发框架,它的核心就是 IOC(Inversion of Control)和依赖注入(Dependency Injection)。Spring Bean 是 Spring Framework 的核心概念之一,它是被 Spring 托管的对象,通常是指业务逻辑组件、…

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