当前位置: 首页 > article >正文

使用MyBatis-Plus与Thymeleaf在Spring Boot中实现增删改查

使用MyBatis-Plus和Thymeleaf在Spring Boot项目中实现基本的增删改查(CRUD)功能。Spring Boot作为当前最流行的Java框架之一,结合MyBatis-Plus的强大ORM能力以及Thymeleaf的模板引擎功能,可以高效地开发出动态网站和应用程序。

一、项目准备

1. 创建Spring Boot项目

首先,我们需要在IDE(如IntelliJ IDEA或Eclipse)中创建一个新的Spring Boot项目。可以选择使用Spring Initializr(https://start.spring.io/)来快速生成项目骨架。

2. 添加依赖

在项目的pom.xml文件中,我们需要添加Spring Boot的起步依赖、MyBatis-Plus的依赖、Thymeleaf的依赖以及MySQL的数据库驱动依赖。以下是一个基本的pom.xml配置示例:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>

3. 配置数据库

application.ymlapplication.properties文件中配置数据库连接信息。这里以application.yml为例:

spring:
datasource:
url: jdbc:mysql://localhost:3306/aa?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource

二、创建实体类与Mapper接口

1. 实体类

在项目中创建一个实体类,比如User,使用Lombok来简化代码:

import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private String email;
}

2. Mapper接口

使用MyBatis-Plus的Mapper接口来定义数据库操作:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 继承BaseMapper后,MyBatis-Plus已经提供了基本的CRUD方法
}

三、创建Service层

Service层负责业务逻辑处理,可以调用Mapper接口的方法来实现数据库操作:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getById(Long id) {
return userMapper.selectById(id);
}
public boolean save(User user) {
return userMapper.insert(user) > 0;
}
}

四、创建Controller层

Controller层负责处理HTTP请求,并调用Service层的方法:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/add")
public String addPage(Model model) {
return "user/add";
}
@PostMapping("/add")
@ResponseBody
public String add(@RequestBody User user) {
boolean success = userService.save(user);
return success ? "success" : "failed";
}
}

五、创建Thymeleaf模板

src/main/resources/templates/user目录下创建add.html模板,用于用户添加页面:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<h2>添加用户</h2>
<form action="/user/add" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required><br>
<input type="submit" value="提交">
</form>
</body>
</html>

六、测试

启动Spring Boot应用,并访问http://localhost:8080/user/add来测试用户添加功能。

以上步骤展示了如何在Spring Boot项目中结合MyBatis-Plus和Thymeleaf来实现基本的增删改查功能。你可以根据具体需求调整和扩展代码。


http://www.kler.cn/news/325660.html

相关文章:

  • 航顺芯片HK32MCU受邀出席汽车芯片国产化与技术创新闭门研讨会
  • Redis:缓存
  • Java 代码块
  • vue + echarts 快速入门
  • 【数据结构与算法】Z算法(扩展KMP)(C++和Python写法)
  • MyBatis-Plus如何分页查询?
  • react 函数组件
  • 《程序猿之Redis缓存实战 · 列表类型》
  • DMDSC更换DCR和VOTE磁盘
  • 云计算Openstack Keystone
  • JVM 基础知识(基础组成 )
  • 寻找两个正序数的中位数(C)
  • Json 在线可视化工具,分享几个
  • K8S篇之解析service和ingress区别
  • 深度学习--------------------------------门控循环单元GRU
  • 利用git将项目上传到github
  • 指定PDF或图片多个识别区域,识别区域文字,并导出到Excel文件中
  • 25届秋招总结——保持自信、坚定选择
  • 【C++算法】6.双指针_有效三角形的个数
  • Android 10.0 系统framework层修改第三方app的dpi的属性功能实现
  • mmseqs2蛋白质聚类数据格式转化
  • C++进阶知识1继承
  • 从零预训练一个tiny-llama#Datawhale组队学习Task2
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • OpenCV-图像拼接
  • C++游戏开发:构建高性能、沉浸式游戏体验的关键
  • 无人机之集群路径规划篇
  • 「系列投研|01」建立自己的移动比特币银行——赛道概况
  • Python办公自动化案例:实现XMind文件转换成Excel文件
  • AIGC: 从两个维度快速选择大模型开发技术路线