Spring boot2+jpa+thymeleaf实现增删改查

yizhihongxing

以下是详细讲解“Spring boot2+jpa+thymeleaf实现增删改查”的完整攻略。

1. 准备工作

在开始实现增删改查功能之前,我们需要进行一些准备工作。

1.1 创建Spring Boot工程

首先,我们需要创建一个Spring Boot工程,在这里可以使用Spring Initializr快速创建一个基础工程。在创建工程的过程中需要添加依赖Spring Web StarterSpring Data JPAThymeleaf

1.2 创建数据库

接下来,我们需要创建数据库,并在数据库中创建用于存储数据的表。这里以一个用户表为例,表结构如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.3 配置数据源

在配置文件中,我们需要配置数据源和JPA的相关信息。具体的配置信息如下:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

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

2. 实现增删改查功能

接下来,我们开始实现增删改查功能,这里需要编写控制器、服务和数据访问层的代码。

2.1 控制器

首先,我们需要编写控制器,通过控制器来接收用户的请求,并将请求转发到服务中进行处理。控制器的代码如下:

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

    @Autowired
    private UserService userService;

    /**
     * 查询用户列表
     * @param model
     * @return
     */
    @GetMapping("/list")
    public String userList(Model model) {
        List<User> userList = userService.findAll();
        model.addAttribute("userList", userList);
        return "user/list";
    }

    /**
     * 跳转到添加用户页面
     * @return
     */
    @GetMapping("/add")
    public String addUserPage() {
        return "user/add";
    }

    /**
     * 添加用户
     * @param user
     * @return
     */
    @PostMapping("/add")
    public String addUser(User user) {
        userService.save(user);
        return "redirect:/user/list";
    }

    /**
     * 跳转到修改用户页面,同时回显用户数据
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/edit/{id}")
    public String editUserPage(@PathVariable("id") Long id, Model model) {
        User user = userService.findById(id);
        model.addAttribute("user", user);
        return "user/edit";
    }

    /**
     * 修改用户
     * @param user
     * @return
     */
    @PostMapping("/edit")
    public String editUser(User user) {
        userService.save(user);
        return "redirect:/user/list";
    }

    /**
     * 删除用户
     * @param id
     * @return
     */
    @GetMapping("/delete/{id}")
    public String deleteUser(@PathVariable("id") Long id) {
        userService.deleteById(id);
        return "redirect:/user/list";
    }
}

2.2 服务

控制器中的方法需要实现具体的业务逻辑,这里需要编写服务的代码,服务中的方法用于操作数据库,与数据访问层进行交互。服务层的代码如下:

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    /**
     * 查询所有用户
     * @return
     */
    public List<User> findAll() {
        return userRepository.findAll();
    }

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    public User findById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    /**
     * 保存用户
     * @param user
     */
    public void save(User user) {
        userRepository.save(user);
    }

    /**
     * 根据id删除用户
     * @param id
     */
    public void deleteById(Long id) {
        userRepository.deleteById(id);
    }
}

2.3 数据访问层

服务中需要与数据访问层进行交互,这里需要编写数据访问层的代码,用于操作数据库。数据访问层的代码如下:

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

至此,我们已经完成了增删改查功能的实现,现在我们需要编写前端页面来与用户进行交互。

3. 编写前端页面

在这里,我们通过Thymeleaf引擎编写前端页面,通过表单的方式与用户进行交互。以下是添加用户和修改用户的页面。

3.1 添加用户页面

<!DOCTYPE html>
<html lang="zh-CN"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>添加用户</title>
</head>
<body>
<h3>添加用户</h3>
<form method="post" action="/user/add">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td>邮箱:</td>
            <td><input type="email" name="email"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="保存">
            </td>
        </tr>
    </table>
</form>
</body>
</html>

3.2 修改用户页面

<!DOCTYPE html>
<html lang="zh-CN"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>修改用户</title>
</head>
<body>
<h3>修改用户</h3>
<form method="post" action="/user/edit">
    <input type="hidden" name="id" th:value="${user.id}">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username" th:value="${user.username}"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password" th:value="${user.password}"></td>
        </tr>
        <tr>
            <td>邮箱:</td>
            <td><input type="email" name="email" th:value="${user.email}"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="保存">
            </td>
        </tr>
    </table>
</form>
</body>
</html>

以上是使用Spring Boot2+jpa+thymeleaf实现增删改查的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot2+jpa+thymeleaf实现增删改查 - Python技术站

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

相关文章

  • Spring Security实现禁止用户重复登陆的配置原理

    要实现禁止用户重复登录的功能,可以使用Spring Security提供的会话管理机制。具体步骤如下: 1.配置session并发管理 在Spring Security配置文件中,可以通过配置ConcurrentSessionControlAuthenticationStrategy实现并发会话控制。示例代码如下: <bean id="ses…

    Java 2023年5月20日
    00
  • Android发送GET与POST请求的DEMO详解

    下面我将为你详细讲解“Android发送GET与POST请求的DEMO详解”这个主题,包括以下几个方面的内容: 什么是HTTP请求 Android中发送HTTP请求的方式 完整示例:Android发送GET请求 完整示例:Android发送POST请求 什么是HTTP请求 HTTP(HyperText Transfer Protocol)是一种用于传输数据的…

    Java 2023年6月15日
    00
  • Spring框架中一个有用的小组件之Spring Retry组件详解

    Spring Retry组件详解 简介 Spring Retry是一个轻量级的框架,它能够帮助我们在失败时自动重试方法调用。 快速上手 在使用Spring Retry之前,需要进行如下配置: 添加依赖: <dependency> <groupId>org.springframework.retry</groupId> &l…

    Java 2023年5月19日
    00
  • Jmeter入门教程

    JMeter入门教程 JMeter是一个基于Java开发的功能强大的负载测试工具,被广泛应用于Web应用程序的性能测试、API测试、负载测试等领域。本教程将引导初学者逐步了解JMeter并学会执行基本的负载测试。 安装JMeter 首先,您需要下载并安装最新版本的JMeter。可以从JMeter官方网站(https://jmeter.apache.org/)…

    Java 2023年5月26日
    00
  • 详解SpringBoot Starter作用及原理

    Spring Boot Starter是一种用于简化Spring Boot应用程序开发的工具,它提供了一种快速启动应用程序的方式,使得开发者可以更加专注于业务逻辑的实现。在本攻略中,我们将介绍Spring Boot Starter的作用及原理,并提供两个示例来说明其用法。 以下是两个示例,介绍Spring Boot Starter的用法: 示例一:使用Spr…

    Java 2023年5月15日
    00
  • 使用AJAX(包含正则表达式)验证用户登录的步骤

    下面我将详细讲解使用AJAX验证用户登录的步骤。 步骤一:前端页面设计 首先,我们需要在前端页面中添加一个用户名输入框、一个密码输入框和一个“登录”按钮,使用Bootstrap框架可以更快速的搭建出界面。在用户输入完用户名和密码之后,点击“登录”按钮触发AJAX请求发送给后端服务器。 示例代码: <form id="login-form&qu…

    Java 2023年6月15日
    00
  • Java举例讲解分治算法思想

    Java举例讲解分治算法思想 分治算法概述 在计算机科学中,分治算法是一种很重要的算法思想,它的基本思想是将问题划分成若干规模较小但结构相似的子问题,然后分别解决这些子问题,最后通过合并这些子问题的解得到原问题的解。分治算法的步骤分为三步:1. 分解原问题2. 求解子问题3. 合并子问题的解得到原问题的解 示例一 我们来看一个求一组数据里的最大值的分治算法。…

    Java 2023年5月19日
    00
  • SpringMVC的五大核心组件用法及说明

    以下是关于“SpringMVC的五大核心组件用法及说明”的完整攻略,其中包含两个示例。 SpringMVC的五大核心组件用法及说明 SpringMVC是Spring框架的一个模块,它是一个基于MVC(Model-View-Controller)架构的Web框架,用于构建Web应用程序。SpringMVC的五大核心组件包括DispatcherServlet、H…

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