这里我们基于前面的后端配置文件和封装的工具,搭建后端MVC架构。
首先我们提取数据库表的公共字段放入baseEntity:
package com.llpp.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:16
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
//逻辑删除
@TableLogic(value = "0", delval = "1")
private Integer deleted;
//状态
private Integer status;
//备注
private String remark;
}
然后是我们的每张表对应的entity->mapper->service->controller:
package com.llpp.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:35
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "params")
public class Params extends BaseEntity implements Serializable {
private static long serialVersionUID = 1L;
private String code;
private String value;
}
package com.llpp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.llpp.entity.Params;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:44
*/
@Mapper
public interface ParamsMapper extends BaseMapper<Params> {
}
package com.llpp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.llpp.entity.Params;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:46
*/
public interface IParamsService extends IService<Params> {
String getValue(String key);
}
package com.llpp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.llpp.entity.Params;
import com.llpp.mapper.ParamsMapper;
import com.llpp.service.IParamsService;
import org.springframework.stereotype.Service;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:46
*/
@Service
public class ParamsServiceImpl extends ServiceImpl<ParamsMapper, Params> implements IParamsService {
@Override
public String getValue(String key) {
return baseMapper.selectOne(new QueryWrapper<Params>()
.select("value")
.eq("code", key).eq("deleted", 0))
.getValue();
}
}
package com.llpp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.llpp.entity.Params;
import com.llpp.service.IParamsService;
import com.llpp.tool.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
import java.util.Optional;
/**
* @Author 21326
* @Date 2025 2025/1/31 20:56
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/params")
public class ParamsController {
private final IParamsService paramsService;
@GetMapping("/getPage")
public Result getPage(Page<Params> page, Params params) {
return Result.data(paramsService.page(page, new QueryWrapper<Params>()
.like(!StringUtils.isEmpty(params.getCode()), "code", params.getCode())
.like(!StringUtils.isEmpty(params.getValue()), "value", params.getValue())
.eq("deleted", 0)));
}
@PostMapping("/rowSave")
public Result rowSave(@RequestBody Params params) {
return Optional.ofNullable(params)
.filter(p -> !StringUtils.isEmpty(p.getCode()))
.filter(p -> !StringUtils.isEmpty(p.getValue()))
.map(p -> Result.status(paramsService.save(p)))
.orElse(Result.fail("参数异常"));
}
@PostMapping("/rowEdit")
public Result rowEdit(@RequestBody Params params) {
return Optional.ofNullable(params)
.filter(p -> Objects.nonNull(p.getId()))
.map(p -> Result.status(paramsService.updateById(p)))
.orElse(Result.fail("参数异常"));
}
@PostMapping("/rowDel")
public Result rowDel(@RequestBody Params params) {
return Optional.ofNullable(params)
.filter(p -> Objects.nonNull(p.getId()))
.map(p -> Result.status(paramsService.removeById(p)))
.orElse(Result.fail("参数异常"));
}
}
这里我们以参数表params为例。