SpringBoot整合Mybatis与thymleft实现增删改查功能详解

我会尽可能详细地讲解“SpringBoot整合Mybatis与Thymeleaf实现增删改查功能”的攻略,让您可以轻松实现该功能。

1. 前置条件

在开始之前,确保您已经完成以下准备工作:

  • 安装Java JDK和IDE(如Eclipse、IntelliJ IDEA等)
  • 掌握SpringBoot、Mybatis及Thymeleaf的基础知识

2. 创建SpringBoot项目

首先,我们要创建一个SpringBoot项目,可以使用Spring Initializr来生成基础代码。在创建项目时,需要勾选Mybatis和Thymeleaf的相关依赖。

在Eclipse中创建项目的步骤如下:

  • 点击 File -> New -> Spring Starter Project
  • 输入项目名称和相关信息,点击 Next
  • 选择使用Maven构建工具,并选择需要的依赖项,包括MyBatis和Thymeleaf
  • 点击 Finish 完成项目创建。

3. 配置数据库

在进行数据持久化操作之前,我们需要先配置数据库。可以在application.properties文件中添加以下内容:

spring.datasource.url= jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

这里我们以MySQL数据库为例,配置了数据库连接的URL、用户名、密码及驱动程序。

4. 创建实体类和持久层接口

在进行数据库操作时,我们需要创建相应的实体类和持久层接口,以便进行数据持久化操作。

在本例中,我们创建一个Person实体类和PersonMapper持久层接口:

public class Person {
    private Integer id;
    private String name;
    private Integer age;
    // 省略getter/setter方法
}

@Mapper
public interface PersonMapper {
    @Select("SELECT id,name,age FROM person WHERE id=#{id}")
    Person findById(Integer id);

    @Insert("INSERT INTO person(name,age) VALUES(#{name},#{age})")
    void save(Person person);

    @Update("UPDATE person SET name=#{name},age=#{age} WHERE id=#{id}")
    void update(Person person);

    @Delete("DELETE FROM person WHERE id=#{id}")
    void delete(Integer id);

    @Select("SELECT id,name,age FROM person")
    List<Person> findAll();
}

在上面的代码片段中,我们使用了Mybatis的注解来指定SQL语句和参数,通过@Id注解来设置主键属性。

需要注意的是,我们需要在PersonMapper接口上添加@Mapper注解,以便让SpringBoot能够自动扫描该接口并生成相应的代理对象。

5. 创建控制器和HTML页面

在进行增删改查操作时,我们需要创建相应的控制器和HTML页面。

在本例中,我们创建一个PersonController控制器和person.html、person_add.html、person_edit.html三个HTML页面:

@Controller
public class PersonController {
    @Autowired
    private PersonMapper personMapper;

    @GetMapping("/person")
    public String list(Model model) {
        List<Person> persons = personMapper.findAll();
        model.addAttribute("persons", persons);
        return "person";
    }

    @GetMapping("/person/add")
    public String add() {
        return "person_add";
    }

    @PostMapping("/person/save")
    public String save(Person person) {
        personMapper.save(person);
        return "redirect:/person";
    }

    @GetMapping("/person/edit/{id}")
    public String edit(@PathVariable("id") Integer id, Model model) {
        Person person = personMapper.findById(id);
        model.addAttribute("person", person);
        return "person_edit";
    }

    @PostMapping("/person/update")
    public String update(Person person) {
        personMapper.update(person);
        return "redirect:/person";
    }

    @GetMapping("/person/delete/{id}")
    public String delete(@PathVariable("id") Integer id) {
        personMapper.delete(id);
        return "redirect:/person";
    }
}

上述代码中,我们首先使用@Autowired注解将PersonMapper注入到控制器中,然后分别实现了列表、添加、编辑、删除等操作。

对应的HTML页面代码如下:

person.html:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Person List</title>
</head>
<body>
    <h1>Person List</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
            <th>Operation</th>
        </tr>
        <tr th:each="person : ${persons}">
            <td th:text="${person.getId()}"></td>
            <td th:text="${person.getName()}"></td>
            <td th:text="${person.getAge()}"></td>
            <td><a th:href="@{/person/edit/{id}(id=${person.getId()})}">Edit</a> | <a
                th:href="@{/person/delete/{id}(id=${person.getId()})}">Delete</a></td>
        </tr>
    </table>
    <p>
        <a href="/person/add">Add Person</a>
    </p>
</body>
</html>

person_add.html:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Add Person</title>
</head>
<body>
    <h1>Add Person</h1>
    <form action="/person/save" method="post">
        <label>Name:</label> <input type="text" name="name" /><br />
        <label>Age:</label> <input type="text" name="age" /><br />
        <input type="submit" value="Save" />
    </form>
    <p>
        <a href="/person">Person List</a>
    </p>
</body>
</html>

person_edit.html:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Edit Person</title>
</head>
<body>
    <h1>Edit Person</h1>
    <form action="/person/update" method="post">
        <input type="hidden" th:name="${_csrf.parameterName}"
            th:value="${_csrf.token}" />
        <input type="hidden" name="id" th:value="${person.id}" />
        <label>Name:</label> <input type="text" name="name"
            th:value="${person.name}" /><br /> <label>Age:</label> <input
            type="text" name="age" th:value="${person.age}" /><br />
        <input type="submit" value="Save" />
    </form>
    <p>
        <a href="/person">Person List</a>
    </p>
</body>
</html>

在上述HTML页面的代码中,我们使用了Thymeleaf模板引擎来进行页面渲染,其中使用了Thymeleaf的标准表达式来显示数据、处理表单等操作。

6. 运行测试

当我们完成上述步骤后,就可以对我们的增删改查功能进行测试了。可以在浏览器中输入 http://localhost:8080/person 来访问Person列表页面,测试增删改查等功能。

我们也可以使用Postman等工具来进行API的测试,以便更加方便的进行接口测试和验证。

示例1:查询Person列表

  • 请求地址:http://localhost:8080/person
  • 请求方法:GET

返回数据:

[
    {
        "id": 1,
        "name": "张三",
        "age": 18
    },
    {
        "id": 2,
        "name": "李四",
        "age": 20
    },
    {
        "id": 3,
        "name": "王五",
        "age": 22
    }
]

示例2:添加Person

  • 请求地址:http://localhost:8080/person/save
  • 请求方法:POST
  • 请求体:
{
    "name": "赵六",
    "age": 25
}

返回数据:

重定向到:/person

总结

通过本文的讲解,我们可以学习到在SpringBoot中如何进行Mybatis和Thymeleaf的整合,以及如何实现增删改查等基本功能。希望本文能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis与thymleft实现增删改查功能详解 - Python技术站

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

相关文章

  • Tomcat CentOS安装实现过程图解

    下面我详细讲解一下“Tomcat CentOS安装实现过程图解”的完整攻略。 标题:Tomcat CentOS安装实现过程图解 1. 确保Java环境已经安装 在安装Tomcat之前,需要确保系统中已经安装了Java环境。可以通过以下命令检查是否已经安装了Java: java -version 如果终端输出了Java的版本信息,则说明Java已经安装成功。如…

    Java 2023年5月19日
    00
  • 详解SpringBoot如何开启异步编程

    详解SpringBoot如何开启异步编程 在SpringBoot中,开启异步编程可以大大提高应用程序的性能,提升用户体验。本文将详细介绍SpringBoot如何实现异步编程。 添加异步编程依赖 要使用异步编程,首先需要在项目的pom.xml文件中添加异步编程相关的依赖。 <!– 使用异步编程 –> <dependency> &lt…

    Java 2023年5月19日
    00
  • 微信小程序登陆注册功能的实现代码

    接下来我将详细讲解微信小程序登陆注册功能的实现代码攻略。 一、前置知识 在实现微信小程序的登陆注册功能前,我们需要掌握一些基础知识。 WXML:微信小程序的模板语言,用于构建页面结构。 WXSS:微信小程序的样式语言,用于设置页面样式。 JavaScript:实现小程序的逻辑处理和数据存储。 云开发:微信小程序提供的一种快速开发后端服务的开发方式,包含云函数…

    Java 2023年5月23日
    00
  • Springboot自定义mybatis拦截器实现扩展

    下面是详细讲解“Springboot自定义mybatis拦截器实现扩展”的完整攻略。 什么是Mybatis拦截器 Mybatis拦截器是一种拦截器模式的机制,通过动态代理技术拦截方法的调用,在方法执行前后进行拦截处理。拦截器可以拦截Mybatis数据库访问层的所有操作,如SQL解析、SQL执行、结果集处理等。通过Mybatis拦截器机制,我们可以在方法调用前…

    Java 2023年5月20日
    00
  • java实现文件变化监控的方法(推荐)

    Java实现文件变化监控的方法(推荐) 在Java开发过程中,我们可能需要监控特定文件或目录内文件的变化情况,例如监控日志文件或配置文件的变化。本攻略将介绍Java实现文件变化监控的方法。 方案1:使用Java 7中的WatchService实现文件监控 Java 7中添加了WatchService类,它可以用于监听文件系统的事件,包括文件和文件夹的创建,修…

    Java 2023年5月19日
    00
  • 详解Java线程的创建及休眠

    详解Java线程的创建及休眠 线程的概念 Java 线程是一条执行路径,每个线程都是独立的,它们之间不会相互影响,每个线程有自己的计数器、栈和程序计数器。线程是轻量级的,因为创建和销毁线程所需的时间和资源相对较少。 Java线程的创建 Java 线程是通过 Thread 类来实现的。创建线程的方式有两种,分别是: 继承 Thread 类 public cla…

    Java 2023年5月19日
    00
  • Java集合ArrayList与LinkedList详解

    Java集合ArrayList与LinkedList详解 概述 Java集合分为两大类:Collection和Map。其中Collection又可以分为List、Set和Queue三种。 ArrayList和LinkedList是List接口的两种实现类,它们都可以存储按顺序排列的元素,但是它们之间有一些区别。本文将从以下几个方面详细讲解ArrayList和…

    Java 2023年5月26日
    00
  • Oracle下的Java分页功能_动力节点Java学院整理

    Oracle下的Java分页功能_动力节点Java学院整理 在Web开发中,分页是非常常见的功能需求。本文将介绍如何在Oracle数据库中使用Java实现分页功能。 1. 实现思路 通过查询获取数据总数及相应的数据,计算出总页数,然后根据当前页大小和页码去查询相应的数据。 2. 具体实现 定义分页参数类PageInfo 我们定义一个分页参数类PageInfo…

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