SpringBoot【SpringMVC+mybatis完成CRUD案例】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 本文介绍SpringBoot整合SpringMVC和mybatis在IDEA中通过maven项目来对user表数据完成CRUD操作,前端使用Thymeleaf来实现。


文章目录

   一、创建项目

       1.创建maven项目

       2.完成相关配置

           2.1 pom添加相关依赖

           2.2 全局配置文件

           2.3 表结构设计

           2.4 创建实体类

   二、实现业务

       1.查询用户信息

           1.2 创建业务层

           1.3 创建控制层

           1.4 创建展示页面

           1.5 启动测试

       2.添加用户信息

           2.1 mapper中增加添加用户的操作

           2.2 业务层

           2.3 控制层处理

           2.4 页面处理

           2.5 测试

       3.修改用户信息

           3.1 mapper层

           3.2 业务逻辑层

           3.3 控制层

           3.4 展示层

           3.5 测试

       4.删除用户信息

 本文介绍SpringBoot整合SpringMVC和mybatis在IDEA中通过maven项目来对user表数据完成CRUD操作,前端使用Thymeleaf来实现。

一、创建项目

1.创建maven项目

创建maven项目

image.png

指定项目的相关maven坐标信息

image.png

配置项目相关的信息,比如项目名称及项目的存储位置

image.png

image.png

创建成功~

2.完成相关配置

2.1 pom添加相关依赖

在pom中添加相关的依赖:

 <!-- 配置依赖的父类 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
</parent>
<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>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.14</version>
    </dependency>
</dependencies>

2.2 全局配置文件

 在main/src/resources目录下创建application.properties文件

image.png

# jdbc的相关配置信息
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ssm
spring.datasource.username=root
spring.datasource.password=123456
# 连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# mybatis给package设置别名
mybatis.type-aliases-package=com.dpb.pojo

2.3 表结构设计

&esmp; 创建如下的数据表

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(255) DEFAULT NULL, 
`age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.4 创建实体类

 创建user的实体类

/**
 * @program: springboot-ssm
 * @description: 用户的实体类
 * @author: 波波烤鸭
 * @create: 2019-05-15 19:41
 */
public class Users {
    private Integer id;
    private String name;
    private Integer age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

二、实现业务

1.查询用户信息

1.1 创建mapper接口和映射配置文件,简单案例就没有使用mybatis的逆向工程生成相关文件了

/**
 * @program: springboot-ssm
 * @description: 用户实体对应的mapper接口
 * @author: 波波烤鸭
 * @create: 2019-05-15 19:46
 */
public interface UsersMapper {
    /**
     * 查询所有的用户信息
     * @return
     */
    List<Users> query();
}

映射文件,注意在resources下创建mapper文件,将映射文件放入此文件夹下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dpb.mapper.UsersMapper">
    <select id="query" resultType="Users">
        select * from t_user
    </select>
</mapper>

image.png

application.properties中添加对应的设置

image.png

1.2 创建业务层

/**
 * @program: springboot-ssm
 * @description: 业务层的实现类
 * @author: 波波烤鸭
 * @create: 2019-05-15 19:55
 */
@Service
@Transactional
public class UserServiceImpl implements UsersService {
    @Resource
    private UsersMapper usersMapper;
    @Override
    public List<Users> query() {
        return usersMapper.query();
    }
}

1.3 创建控制层

/**
 * @program: springboot-ssm
 * @description: 用户的控制层
 * @author: 波波烤鸭
 * @create: 2019-05-15 19:57
 */
@Controller
@RequestMapping("/users")
public class UsersController {
    @Resource
    private UsersService usersService;
    /**
     * 页面跳转
     */
    @RequestMapping("/{page}")
    public String showPage(@PathVariable String page){
        return page;
    }
    /**
     * 查询用户信息
     * @return
     */
    @RequestMapping("/query")
    public String queryUser(Model model){
        model.addAttribute("list",usersService.query());
        return "users";
    }
}

1.4 创建展示页面

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用户管理界面</title>
</head>
<body>
    <h1>用户管理</h1>
    <table border="1" style="width:300px;">
        <tr>
            <th>用户 ID</th>
            <th>用户姓名</th>
            <th>用户年龄</th>
        </tr>
        <tr th:each="user : ${list}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
            <td th:text="${user.age}"></td>
        </tr>
    </table>
</body>
</html>

1.5 启动测试

 在com.dpb 下创建启动类

/**
 * @program: springboot-ssm
 * @description: 启动类
 * @author: 波波烤鸭
 * @create: 2019-05-15 19:39
 */
@SpringBootApplication
//@MapperScan 用户扫描MyBatis的Mapper接口
@MapperScan("com.dpb.mapper")
public class Start {
    public static void main(String[] args) {
        SpringApplication.run(Start.class,args);
    }
}

image.png

操作成功~

2.添加用户信息

2.1 mapper中增加添加用户的操作

void insertUser(Users users);
<insert id="insertUser" parameterType="Users">
     insert into t_user(name,age)values(#{name},#{age})
 </insert>

2.2 业务层

 @Override
 public void insertUser(Users users) {
     usersMapper.insertUser(users);
 }

2.3 控制层处理

    /**
     * 添加用户信息
     * @return
     */
    @RequestMapping("/save")
    public String insertUser(Users users){
        usersService.insertUser(users);
        return "redirect:/users/query";
    }

2.4 页面处理

userAdd.html页面

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用户管理界面</title>
</head>
<body>
    <h1>添加用户</h1>
    <form th:action="@{/users/save}" method="post">
        用户姓名:<input type="text" name="name"/><br/>
        用户年龄:<input type="text" name="age"/><br/>
        <input type="submit" value="确定"/><br/>
    </form>
</body>
</html>

2.5 测试

image.png

image.png

3.修改用户信息

3.1 mapper层

    Users queryById(Integer id);
    void update(Users users);

 

    <select id="queryById"  resultType="Users">
        select * from t_user where id = #{id}
    </select>
    <update id="update" parameterType="Users">
        update t_user set name=#{name},age=#{age} where id = #{id}
    </update>

3.2 业务逻辑层

 

    @Override
    public Users queryUsersById(Integer id) {
        return this.usersMapper.queryById(id);
    }
    @Override
    public void updateUser(Users users) {
        this.usersMapper.update(users);
    }

3.3 控制层

 

    @RequestMapping("/updateInfo")
    public String updateInfo(Model model,Integer id){
        model.addAttribute("users",this.usersService.queryUsersById(id));
        return "/usersUpdate";
    }
    @RequestMapping("/update")
    public String updateUser(Users users){
        this.usersService.updateUser(users);
        return "redirect:/users/query";
    }

3.4 展示层

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用户管理界面</title>
</head>
<body>
    <h1>添加用户</h1>
    <form th:action="@{/users/update}" method="post">
        <input type="hidden" name="id" th:value="${users.id}">
        用户姓名:<input type="text" name="name" th:value="${users.name}"/><br/>
        用户年龄:<input type="text" name="age" th:value="${users.age}"/><br/>
        <input type="submit" value="确定"/><br/>
    </form>
</body>
</html>

image.png

3.5 测试

启动程序,访问演示

image.png

image.png

image.png

4.删除用户信息

后台代码

控制层

@RequestMapping("/delete")
public String delete(Integer id){
    this.usersService.delete(id);
    return "redirect:/users/query";
}

业务层

 @Override
 public void delete(Integer id) {
     this.usersMapper.delete(id);
 }

mapper

 void delete(Integer id);
 void delete(Integer id);

页面处理

image.png

测试搞定

image.png

image.png

~好了,到此SpringBoot+SpringMVC+Mybatis+Thymeleaf的CRUD案例完成!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL Java 数据库连接
MyBatis-Plus:简化 CRUD 操作的艺术
MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。
54 1
MyBatis-Plus:简化 CRUD 操作的艺术
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
119 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
58 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
25天前
|
消息中间件 NoSQL Java
springboot整合常用中间件框架案例
该项目是Spring Boot集成整合案例,涵盖多种中间件的使用示例,每个案例项目使用最小依赖,便于直接应用到自己的项目中。包括MyBatis、Redis、MongoDB、MQ、ES等的整合示例。
81 1
|
2月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
358 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
197 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
2月前
|
SQL Java 数据库连接
mybatis使用二:springboot 整合 mybatis,创建开发环境
这篇文章介绍了如何在SpringBoot项目中整合Mybatis和MybatisGenerator,包括添加依赖、配置数据源、修改启动主类、编写Java代码,以及使用Postman进行接口测试。
17 0
mybatis使用二:springboot 整合 mybatis,创建开发环境
|
2月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
58 2
下一篇
无影云桌面