搭建简单的Spring-Data JPA项目

yizhihongxing

以下是详细讲解“搭建简单的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日

相关文章

  • IDEA 当前在线人数和历史访问量的示例代码

    为了展示当前在线人数和历史访问量,网站可以利用后端技术和前端技术实现。 一、后端技术: 后端技术可以利用数据库和服务器进行实现。 数据库存储在线人数和历史访问量的数据。 首先,在数据库中创建一个数据表,包含两个字段:online_users 和 visit_count。分别用于存储当前在线人数和历史访问量的数据。其中,online_users 可以利用 se…

    Java 2023年6月15日
    00
  • springboot集成shiro详细总结

    下面我来详细讲解“springboot集成shiro详细总结”的完整攻略,包含以下几个部分: 一、基本概念 1.1 shiro是什么 shiro是一个轻量级的Java安全框架,提供了身份认证、授权、加密等安全相关功能,可以方便地集成到各种Java项目中。 1.2 springboot是什么 springboot是Spring框架的一种简化版,旨在通过自动化配…

    Java 2023年6月15日
    00
  • Spring占位符Placeholder的实现原理解析

    Spring占位符Placeholder的实现原理解析 在Spring中,占位符(Placeholder)是一个非常实用的功能,它可以在Spring容器启动时通过配置文件或环境变量等方式注入需要的配置值。本文将详细讲解Spring占位符的实现原理。 占位符的使用 在Spring中,占位符有两种使用方式:XML配置方式和注解方式。 XML配置方式 在XML配置…

    Java 2023年5月31日
    00
  • 关于重写equals()方法和hashCode()方法及其简单的应用

    当我们需要比较两个对象的内容是否相同时,就需要用到equals()方法。而在使用equals()方法时,如果我们没有重写该方法,那么默认的实现是比较两个对象的内存地址是否相同。 然而,有时候我们并不想比较内存地址,而是希望比较对象的内容是否相同。这时就需要重写equals()方法了。下面是重写equals()方法的攻略: 为什么需要重写equals()方法 …

    Java 2023年5月26日
    00
  • 详解JVM中的本机内存跟踪

    详解JVM中的本机内存跟踪 JVM内存管理机制中,本机内存是一个重要的概念。本机内存主要指的是JVM所管理的非Java堆内存。在本机内存中,主要包括了本地程序库、直接内存以及堆外内存。 在进行JVM内存跟踪和性能调优时,本机内存也是一个需要我们关注的维度。下文将详细讲解如何进行JVM中的本机内存跟踪。 本机内存的组成部分 JVM中的本机内存主要由以下几部分组…

    Java 2023年5月19日
    00
  • SpringBoot整合SQLite数据库全过程

    下面我将为您详细讲解SpringBoot整合SQLite数据库的全过程,包括以下几个步骤: 导入SQLite依赖 配置SQLite数据源 创建实体类 创建DAO接口 创建Service层 创建Controller层 示例演示 1.导入SQLite依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>o…

    Java 2023年5月20日
    00
  • SpringBoot错误处理流程深入详解

    SpringBoot错误处理流程深入详解 在SpringBoot开发过程中,我们经常需要处理错误。因此,对于SpringBoot错误处理的流程及其细节进行深入的理解,可以对我们的开发工作有所帮助。 SpringBoot错误处理流程概述 SpringBoot错误处理流程分为两部分:异常处理和404处理。 异常处理采用@ControllerAdvice注解,所有…

    Java 2023年5月27日
    00
  • Mybatis generator修改Mapper.java文件实现详解

    下面我会详细讲解“Mybatis generator修改Mapper.java文件实现详解”的完整攻略。 概述 Mybatis generator是一个常用的代码生成工具,可以用于自动生成Mybatis的Mapper XML、Mapper Java以及POJO等文件。通常情况下,使用Mybatis generator可以很方便地生成出需要的代码。但是,有的时…

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