(四)后端数据增删改查---基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建

任务三 基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建(三)—后端环境搭建

任务四 后端数据增删改查

前面在任务三我们已经完成了基于Springboot的Maven项目搭建,并且基于Templates创建HTML页面,添加控制器,实现数据前后端传值。这样大家对于Maven项目的运行机制有所回顾。
因为我们这里主要给大家讲的是前后端分离的管理系统,所以后期就不会在Idea中添加前端页面了。后续为了不影响项目运行,POM.xml中添加的thymeleaf依赖是可以删除的。当然,保留也不会影响整个项目。一般情况,我们都是在需要的时候添加依赖,这样保持自己思路清晰。
本次任务,我们在前面项目搭建完成的基础上,在后端实现用户数据的CRUD。通过本次任务,大家能够:
(1)熟练掌握基于Navicat Premium 15的MySQL数据库、数据表创建;
(2)熟练使用@Mapper注解及Mybatis注解方式实现数据CRUD;熟练使用SQL语句;
(3)学会使用Postman做运行测试。
特别说明:大家在使用文中的代码时,复制或者粘贴的时候,一定注意换成自己项目,如:package com.example.demo.mapper;你需要把package com.example.demo.mapper;中的com.example.demo换成自己的项目。

一、 数据查询

1.使用Navicat Premium 15创建数据库qing。

2.创建数据表
创建一个sys_user数据表。(初学者建议创建数据表名不要有下划线,当然也可以完全按照我写的模仿创建,后面我会给大家解释有下滑线的弊端,但是对于商业用表,最好下划线的方式,所以在后面使用表的时候,我们会讲如何通过加注解的方式解决这个问题)
id为主关键字,create_time选用默认值,实现用户创建时间根据当时的时间自动填充。
在这里插入图片描述

在这里插入图片描述

2. 数据表添加数据

在这里插入图片描述

3. 新建实体类User

在IDEA中创建一个包entity,并新建一个实体类User。
• 可以使用原始方法生成get和set,Alt+Insert健可以打开生成器,然后选择Getter and Setter。
在这里插入图片描述
下一步选择所有字段:
在这里插入图片描述
• 也可以使用lombok提供的插件,直接使用@Data注解,实现上述功能。
lombok插件按照方法:
在这里插入图片描述
User类完整代码如下:

package com.example.demo.entity;

import lombok.Data;

import java.sql.Date;


@Data

public class User {

    private Integer id;
    private String username;
    private String password;
    private String email;
    private String phone;
    private String nickname;
    private String address;
}

4.添加UserMapper接口

创建一个mapper包,创建一个UserMapper接口,添加一个查询的方法,注意加上Mapper注解,代码如下:

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    @Select("select * from sys_user")
    List<User> findAll();
}

5.添加UserController类

创建一个controller包,创建一个UserController类,添加映射方法index,实现数据交互接口,查看是否能够查询到所有数据,代码如下:

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @GetMapping("/")
    public List<User> index(){
        return userMapper.findAll();
    }
}

特别注意:
(1)这里我们已经开始不使用html文件了,也就不需要插件了,请大家务必记得将这个依赖删除,否则运行的时候就会报错。
在pom文件中删除这个依赖。


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(2)这里开始我们使用@RestController注解进行路由转换。
(3)添加注解@RequestMapping(“/user”)。

6.运行项目

数据库中的数据可以实现查询。
在这里插入图片描述

二、数据增加

1.UserMapper接口中添加一个插入的方法

代码如下:

  @Insert("insert into sys_user(username,password,email,phone,nickname,address) " +
          "VALUES(#{username},#{password},#{email},#{phone},#{nickname},#{address});")
//这里只是做测试使用
  int insert(User user);

特别说明: 不管是新增还是更新,这样写是最简单的方式,没有表关联,也还不能实现对个别字段的新增。这时候就需要动态SQL语句,后面会讲xml文件。

2.新建UserService类

新建一个service包,并新建一个UserService类,进行数据业务逻辑。
在这里插入图片描述

3. UserService类中添加save方法

代码如下:

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public int save(User user){
        return userMapper.insert(user);
    }
}

4.UserController类添加save接口

注意添加或者修改使用post,代码如下:

  @PostMapping
      //这里做了一个单纯的添加的示例,使用的是mapper中的insert方法
      public Integer save(@RequestBody User user){
        return userMapper.insert(user);
      }  

5. 运行项目

三、 postman安装与使用

在没有前端的情况下,可以使用postman作为测试接口。

1.下载postman

可以到官网下载postman https://en.softonic.com/download/postman/windows/post-download

2.在postman中进行测试

打开postman,按下图示意进行测试。
在这里插入图片描述
JSON数据为:

{
  "username":"sunwuk",
  "password":"******",
  "nickname":"孙悟空"
}

点击send实现测试。
在这里插入图片描述

四、数据更新

1.UserMapper接口中添加一个更新的方法

代码如下:

  @Update("update sys_user set username=#{username},password=#{password}," +
          "nickname=#{nickname},email=#{email},phone=#{phone},address=#{address} where id=#{id}")
  int update(User user);

2. UserService类中修改save方法

代码如下:

public int save(User user){
          //如果user没有id则表明是新增
          if(user.getId()==null){
              return userMapper.insert(user);
          }
          //否则就是更新
          else {
              return userMapper.update(user);
          }
      }

3. 运行项目

使用postman作为测试接口,进行更新测试。这时候就会发现,更新的时候虽然可以实现对ID的判断,但是如果只是更新某一个字段,就会发现,其他的字段值变为空了,这时候就需要动态SQL了,后面XML需要登场了。

五、数据删除

1.UserMapper接口中添加一个删除的方法

代码如下:

  @Delete ("delete from sys_user where id=#{id}")
  int deleteById(@Param("id") Integer id);

2. UserService类中添加deleteById方法

代码如下:

public Integer deleteById(Integer id) {
      return userMapper.deleteById(id);
  }

3. UserController类中添加删除数据方法deleteById

注意删除使用DeleteMapping,代码如下:

@DeleteMapping("/{id}")
  public Integer deleteById(@PathVariable Integer id){
      return  userService.deleteById(id);
  }

4.使用postman测试

在这里插入图片描述

任务总结

本次任务,主要完成并掌握以下内容:
(1)数据库、数据表创建。
(2)添加service层,mapper层等,逐渐掌握controller控制器层,mapper数据访问层,与数据库相关,进行对数据库的增删改查等操作,service层负责整合mapper层供外部调用。(目前没有用到接口实现层)
(3)学会使用postman做项目测试。

猜你喜欢

转载自blog.csdn.net/wdyan297/article/details/128720096