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

仓库管理系统-2-后端之基于继承基类的方式实现增删改查

文章目录

  • 1 数据库表user
  • 2 后端通用框架
    • 2.1 User.java(实体类)
    • 2.2 使用封装的方法(继承基类)
      • 2.2.1 UserMapper.java(mapper接口)
      • 2.2.2 UserService.java(service接口)
      • 2.2.3 UserServiceImpl.java(service实现类)
      • 2.2.4 UserController.java(控制器)
  • 3 增删改查(封装的方法)
    • 3.1 UserController.java
    • 3.2 查询userService.list()
    • 3.3 新增userService.save(user)
    • 3.4 修改userService.updateById(user)
    • 3.5 新增或修改userService.saveOrUpdate(user)
    • 3.6 删除userService.removeById(user.getId())
    • 3.7 模糊查询userService.list(queryWrapper)
  • 4 附录
    • 4.1 LomBok的@Data注解失效问题
    • 4.2 the key is primitive警告问题
    • 4.3 参考附录

查询list()、新增save(user)、修改updateById(user)、新增或修改saveOrUpdate(user)、删除removeById(user.getId())、模糊查询list(queryWrapper)。

1 数据库表user

create table user(id int auto_increment primary key comment '主键',account varchar(20) null comment '账号',name varchar(100) not null comment '名字',password varchar(20) not null comment '密码',age int null comment '年龄',sex int null comment '性别 1男 2女',phone varchar(20) null comment '电话',role_id int null comment '角色 0:超级管理员 1:管理员 2:普通账户',isValid varchar(4) default 'Y' null comment '是否有效,Y有效,其他无效'
);

添加一条数据
在这里插入图片描述

2 后端通用框架

(1)创建实体类。
(2)创建mapper接口。
(3)创建service接口。
(4)创建service实现类。
(5)创建配置文件【封装的方法不需要,自定义的方法需要】。
(6)创建控制器。

2.1 User.java(实体类)

在这里插入图片描述

package com.zb.wms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;@Data
public class User {@TableId(value="id",type = IdType.AUTO)private Integer id;private String account;private String name;private String password;private Integer age;private Integer sex;private String phone;@TableField("role_id")private Integer roleId;@TableField("isValid")private String isValid;
}

2.2 使用封装的方法(继承基类)

在这里插入图片描述

2.2.1 UserMapper.java(mapper接口)

在这里插入图片描述

package com.zb.wms.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zb.wms.entity.User;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper extends BaseMapper<User> {
}

2.2.2 UserService.java(service接口)

在这里插入图片描述

package com.zb.wms.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.wms.entity.User;public interface UserService extends IService<User> {
}

2.2.3 UserServiceImpl.java(service实现类)

在这里插入图片描述

package com.zb.wms.service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zb.wms.entity.User;
import com.zb.wms.mapper.UserMapper;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

2.2.4 UserController.java(控制器)

package com.zb.wms.controller;import com.zb.wms.entity.User;
import com.zb.wms.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> list() {return userService.list();}
}

注解@RestController会将结果自动转成json返回,json中的数值和字符串与实体类对应。
在这里插入图片描述

3 增删改查(封装的方法)

User.java---实体
UserMapper.java---继承--->BaseMapper<User>
UserService.java---继承--->IService<User>
UserServiceImpl.java---继承--->ServiceImpl<UserMapper,User>
UserServiceImpl.java---实现--->UserService
UserController.java---使用--->UserService

3.1 UserController.java

package com.zb.wms.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zb.wms.entity.User;
import com.zb.wms.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class UserController {@GetMapping("/")public String hello() {return "hello world";}
}

在这里插入图片描述

3.2 查询userService.list()

@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> list() {return userService.list();}
}

在这里插入图片描述

3.3 新增userService.save(user)

@RestController
public class UserController {@Autowiredprivate UserService userService;// 新增@PostMapping("/save")public boolean save(@RequestBody User user) {return userService.save(user);}
}

id是自增长的,可以不用传递。
在这里插入图片描述

3.4 修改userService.updateById(user)

@RestController
public class UserController {@Autowiredprivate UserService userService;// 修改@PostMapping("/mod")public boolean mod(@RequestBody User user) {return userService.updateById(user);}
}

在这里插入图片描述
id使用字符串也行,但最好还是与定义的类型保持一致。
在这里插入图片描述

3.5 新增或修改userService.saveOrUpdate(user)

@RestController
public class UserController {@Autowiredprivate UserService userService;// 新增或修改@PostMapping("/saveOrMod")public boolean saveOrMod(@RequestBody User user) {return userService.saveOrUpdate(user);}
}

(1)没有传递id就是新增。
在这里插入图片描述
(2)传递了id就是修改。
在这里插入图片描述

3.6 删除userService.removeById(user.getId())

@RestController
public class UserController {@Autowiredprivate UserService userService;// 删除@PostMapping("/delete")public boolean delete(@RequestBody User user) {return userService.removeById(user.getId());}
}

在这里插入图片描述

3.7 模糊查询userService.list(queryWrapper)

@RestController
public class UserController {@Autowiredprivate UserService userService;// 查询(模糊匹配)@PostMapping("/listP")public List<User> listP(@RequestBody User user) {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.like("name", user.getName());return userService.list(queryWrapper);}
}

在这里插入图片描述

4 附录

4.1 LomBok的@Data注解失效问题

pom.xml的build标签中,将其余内容删除,只保留如下内容就可以了。
在这里插入图片描述

4.2 the key is primitive警告问题

在这里插入图片描述

@TableId(value="id",type = IdType.AUTO)
private int id;

该警告提示主键字段id是原始类型primitive【原始的】,不推荐使用。解决方案是将主键类型从int改为Integer这样的包装类。

@TableId(value="id",type = IdType.AUTO)
private Integer id;

4.3 参考附录

参考在线项目生成向导https://start.spring.io/
参考Spring项目–@Data注解失效问题
参考启动WARN:This primary key of “id“ is primitive !不建议如此请使用包装类 in Class原因分析

http://www.lryc.cn/news/601373.html

相关文章:

  • 7.25 C/C++蓝桥杯 |排序算法【下】
  • macOS 安装 Homebrew
  • JavaScript事件(event)对象方法与属性
  • mac配置多版本jdk
  • C#中Visual Studio平台按照OfficeOpenXml步骤
  • Min-Max标准化​ 和 ​Z-score标准化
  • Python队列算法:从基础到高并发系统的核心引擎
  • LeetCode|Day27|70. 爬楼梯|Python刷题笔记
  • Spring Retry 异常重试机制:从入门到生产实践
  • Spring Boot自动配置原理深度解析
  • 适配IE11(通过Babel+core-js转译ES6语法)
  • Flutter 生命周期介绍
  • 几个注册中心的特性
  • 欧拉图与欧拉回路
  • 菜鸟的C#学习(四)
  • windows 10安装oracle(win64_11gR2)
  • 医疗AI语义潜空间分析研究:进展与应用
  • Unity 实时 CPU 使用率监控
  • IP--MGER综合实验报告
  • Linux驱动20 --- FFMPEG视频API
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测
  • AWS免费套餐全面升级:企业降本增效与技术创新解决方案
  • 《频率之光》
  • 详解赛灵思SRIO IP并提供一种FIFO封装SRIO的收发控制器仿真验证
  • 基于Django的天气数据可视化分析预测系统
  • Django实时通信实战:WebSocket与ASGI全解析(下)
  • 二、搭建springCloudAlibaba2021.1版本分布式微服务-Nacos搭建及服务注册和配置中心
  • mybatis的insert(pojo),会返回pojo吗
  • 激光SLAM技术综述(2025版)
  • springboot基于Java的人力资源管理系统设计与实现