本文介绍: 本次任务我们前面项目搭建完成的基础上,在后端实现用户数据的CRUD。通过本次任务大家能够:(1)熟练掌握基于Navicat Premium 15的MySQL数据库数据表创建;(2)熟练使用@Mapper注解实现数据CRUD;熟练使用SQL语句;(3)学会使用Postman做运行测试

任务基于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
• 可以使用原始方法生成getset,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做项目测试。

原文地址:https://blog.csdn.net/wdyan297/article/details/128720096

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32430.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注