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日

相关文章

  • java实现登录之后抓取数据

    下面是Java实现登录之后抓取数据的完整攻略: 一、概述 当我们需要抓取某个网站上的数据时,通常需要先登录该网站,这样才能访问该网站的受保护资源。本篇攻略将会讲解如何使用Java实现模拟登录,并抓取登录后的页面数据。 二、准备 为了实现模拟登录,我们需要用到Java的HttpClient和Jsoup库。HttpClient用于发送HTTP请求,而Jsoup用…

    Java 2023年5月19日
    00
  • SpringBoot Security从入门到实战示例教程

    SpringBoot Security从入门到实战示例教程 SpringBoot Security 是一个基于Spring Boot的安全框架,提供了许多安全功能,比如身份验证、授权、攻击防护等。本教程将带你从入门到实战,讲解SpringBoot Security的使用方法。 准备工作 在开始学习SpringBoot Security之前,需要先了解Spri…

    Java 2023年6月3日
    00
  • 详解SpringBoot时间参数处理完整解决方案

    下面我将详细讲解“详解SpringBoot时间参数处理完整解决方案”的完整攻略。 一、背景简介 在SpringBoot应用开发中,我们经常需要处理时间类型的参数。而在不同的场景下,我们需要对时间参数的传参方式进行不同的处理。本篇文章将对SpringBoot时间参数的传入方式和处理方式进行深入探讨,并给出完整的解决方案。 二、时间参数的传入方式 时间参数作为U…

    Java 2023年5月20日
    00
  • struts2+spring+hibernate分页代码[比较多]第1/7页

    下面我来为你详细讲解“struts2+spring+hibernate分页代码[比较多]第1/7页”的完整攻略。 概述 该攻略主要涉及到使用struts2、spring、hibernate等框架进行分页的操作。在该攻略中,我们将使用分页插件完成分页操作,具体实现过程如下。 步骤 引入分页插件 我们可以通过Maven引入pagehelper插件,具体配置如下:…

    Java 2023年5月20日
    00
  • 用JavaScript实现 铁甲无敌奖门人 “开口中”猜数游戏

    下面是用JavaScript实现「铁甲无敌奖门人“开口中”猜数游戏」的完整攻略。 游戏规则 该游戏分为两个角色:猜数者和奖门人。在游戏开始时,奖门人会先随机设定一个数(一般为 1 到 100 之间的整数),并说出自己设定的数是在 1 到 100 之间。然后,猜数者可以轮流猜测这个数字,而奖门人将回答「大了」、「小了」或者「猜对了」。如果猜数者猜对了,游戏结束…

    Java 2023年6月15日
    00
  • 关于MVC与SpringMVC的介绍、区别、执行流程

    MVC与SpringMVC的介绍 MVC是一种软件设计模式,它将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。模型表示应用程序的数据和业务逻辑,视图表示用户界面,控制器负责处理用户输入并更新模型和视图。 SpringMVC是Spring框架的一个模块,它是一个基于MVC架构的Web框架,用于构建Web应用程序。S…

    Java 2023年5月16日
    00
  • java实现日历窗口小程序

    Java实现日历窗口小程序攻略 1. 实现思路 要实现一个日历窗口小程序,可以考虑以下几个步骤: 创建一个Swing界面,显示当前日期以及日历窗口。 在日历窗口中显示当前月份的日历。 提供按钮或其他交互方式,让用户可以切换月份,也可以选择某一天进行其他操作。 2. 示例1:显示当前月份的日历 下面是一个简单的实现示例,可以通过一个二维数组表示一个月份的日历:…

    Java 2023年5月20日
    00
  • Java中调用SQL Server存储过程详解

    Java调用SQL Server存储过程的步骤如下: 1.首先,要在Java中连接数据库 这里使用JDBC连接SQL Server数据库,示例代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class C…

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