SpringBoot整合Spring Data JPA的详细方法

针对这个话题,下面是SpringBoot整合Spring Data JPA的详细方法的攻略:

1. 添加依赖

在 pom.xml 文件中添加如下依赖:

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
</dependencies>

2. 配置数据源和JPA

在 application.properties 文件中添加数据源和 JPA 配置信息,示例如下:

# 数据源配置
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&charset=utf8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root

# JPA 配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

3. 创建实体类

创建实体类,示例如下:

@Entity
@Table(name = "user")
public class User {

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

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private Integer age;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Column(nullable = false)
    private Date birthday;

    // 省略 getter 和 setter 方法
}

4. 创建 Repository 接口

创建 Repository 接口,示例如下:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    // 省略其他方法
}

5. 编写业务逻辑代码

在 Service 层编写业务逻辑代码,示例如下:

@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    @Override
    public List<User> getUserList() {
        return userRepository.findAll();
    }

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

    @Override
    public void deleteUserById(Long id) {
        userRepository.deleteById(id);
    }
}

6. 创建 Controller

创建 Controller,示例如下:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @GetMapping("/")
    public List<User> getUserList() {
        return userService.getUserList();
    }

    @PostMapping("/")
    public User saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUserById(@PathVariable Long id) {
        userService.deleteUserById(id);
    }
}

至此,SpringBoot整合Spring Data JPA 的配置就完成了。通过访问 UserController 的方法,即可对 User 实体进行增删改查操作。

下面是示例代码:

示例一

添加一个用户

@RestController
@RequestMapping("/user")
public class UserController {

    // UserService 的注入省略

    @PostMapping("/")
    public User saveUser(@RequestBody User user) {
        User newUser = new User();
        newUser.setName(user.getName());
        newUser.setAge(user.getAge());
        newUser.setBirthday(user.getBirthday());

        return userService.saveUser(newUser);
    }
}

发送 POST 请求,请求体参数如下:

{
    "name": "test",
    "age": 18,
    "birthday": "2022-11-11"
}

示例二

获取用户列表

@RestController
@RequestMapping("/user")
public class UserController {

    // UserService 的注入省略

    @GetMapping("/")
    public List<User> getUserList() {
        return userService.getUserList();
    }
}

发送 GET 请求即可获取用户列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Spring Data JPA的详细方法 - Python技术站

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

相关文章

  • 详解SpringBoot Starter作用及原理

    详解SpringBoot Starter作用及原理 简介 Spring Boot Starter简化了Spring Boot应用程序的依赖性管理,并提供了快速启动应用程序所需的所有依赖关系的打包方式。 什么是SpringBoot Starter 在Spring Boot项目开发中,我们可以参考Spring Boot Starter组织的maven工程来进行依…

    Java 2023年5月19日
    00
  • Java的Hibernate框架结合MySQL的入门学习教程

    Java的Hibernate框架结合MySQL的入门学习教程 Hibernate是一个流行的Java ORM框架,它可以通过对象关系映射(ORM)技术方便地处理数据库操作。MySQL是最流行的开源关系型数据库之一,它能够管理大量的数据。在本教程中,我们将重点介绍如何使用Hibernate框架来处理MySQL数据库的增删改查操作。 环境准备 在开始之前,请确保…

    Java 2023年5月19日
    00
  • SSH框架网上商城项目第7战之整合Struts2和Json

    下面是 “SSH框架网上商城项目第7战之整合Struts2和Json”的完整攻略: 1. 概述 本文是在使用SSH框架搭建在线商城的基础上,介绍了如何整合Struts2和Json来实现后端与前端之间的数据交互。 2. 安装插件 首先,我们需要在项目中引入Struts2和Json插件,可以在pom.xml文件中添加以下依赖: <dependency&gt…

    Java 2023年5月20日
    00
  • 浅谈Java实现回溯算法之八皇后问题

    浅谈Java实现回溯算法之八皇后问题 什么是八皇后问题? 八皇后问题是一个经典的问题,在一个8×8的棋盘上放置8个皇后,使得任意两个皇后都不能在同一行、同一列或同一对角线上。也就是说,每个皇后所在的行、列、对角线都必须存在且只能存在一个皇后。 回溯算法 回溯算法是一种有组织地遍历所有可能的情况的搜索算法。它从一条路径开始,尝试不同的选择,直到找到符合条件的解…

    Java 2023年5月19日
    00
  • Java之Mybatis的二级缓存

    让我们来详细讲解Java中Mybatis的二级缓存。 什么是Mybatis的二级缓存 Mybatis的二级缓存是一种共享缓存,存放的是数据对象。它可以跨越SQL会话使用,能够减轻数据库的访问压力,提高系统性能。当启用二级缓存后,Mybatis在缓存中存储查询结果对象,并不再每次查询时都向数据库发起SQL请求,从而避免了重复访问数据库。 Mybatis的二级缓…

    Java 2023年5月20日
    00
  • Java Springboot自动装配原理详解

    Java Springboot自动装配原理详解 背景 为了提高开发效率并减少代码冗余,Spring Boot引入了自动装配的机制。这使得我们不需要手动添加大量的配置文件和代码,就可以快速搭建一个可运行的应用。 自动装配原理 Spring Boot的自动装配原理就是依赖注入(DI)和控制反转(IOC)的应用。当Spring Boot发现某个Bean被多个模块所…

    Java 2023年5月19日
    00
  • springboot中@RequestMapping的用法

    下面是关于“springboot中@RequestMapping的用法”的完整攻略。 @RequestMapping注解 @RequestMapping是Spring MVC中的注解,它可以将URL映射到一个特定的方法上。在Spring Boot应用中,我们可以使用它来定义REST API的终端点(Endpoint)。 常用属性 @RequestMappin…

    Java 2023年5月15日
    00
  • FusionCharts图表显示双Y轴双(多)曲线

    要讲解“FusionCharts图表显示双Y轴双(多)曲线”,我们需要了解以下几个方面: FusionCharts的基本使用: FusionCharts是一种可以创建多种类型图表的强大JavaScript库。使用FusionCharts的步骤如下: 引入FusionCharts库文件; 创建一个用于显示图表的空间; 创建一个包含图表属性和数据的JSON对象;…

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