# springboot-mybatis-plus-ctl **Repository Path**: hdl_1107/springboot-mybatis-plus-ctl ## Basic Information - **Project Name**: springboot-mybatis-plus-ctl - **Description**: 使用spring-boot和mybatis-plus构建脚手架,mapper,service,controller的单表增删改查都可以不再写了 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2018-03-05 - **Last Updated**: 2023-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # springboot-mybatis-plus-ctl 使用spring-boot和mybatis-plus构建脚手架,mapper,service,controller的单表增删改查都可以不再写了 由于mybatis-plus写的通用mapper和通用service已经让我们大大的简化了我们的代码,然而,我们还是需要自己去写繁琐的controller,每一个都需要写增删改查,那么决定把controller也写成一个通用的controller,实现单表的增删改查,大大的提高我们的开发效率,以及结构的一致化。 这是我们只要继承我们的BaseController,即可实现我们的简单的增删改查。控制层脚手架如下: ``` /** * 基础Controller,将一些共同的增删改查定义为脚手架 * @author hedonglin * @company 个人 * @email 1048791780@qq.com * @date 2018年02月09 */ public class BaseController{ @Autowired protected HttpServletRequest request; @Autowired protected HttpServletResponse response; @Autowired protected BaseServiceImpl baseServiceImpl; /** * 单条记录查询 * @param id * @return */ @GetMapping("/{id}") @ResponseBody public R get(@PathVariable PK id){ T entity = (T) baseServiceImpl.selectById(id); return R.ok().put(Info_Result_Key,entity); } /** * 新增某条记录 * @param entity * @return */ @PostMapping(value = "/add") @ResponseBody public R add(@RequestBody T entity){ boolean b = baseServiceImpl.insert(entity); return getCommonReturnMsg(b,ADD_MSG); } /** * 修改某条记录 * @param entity * @return */ @PutMapping(value = "/update") @ResponseBody public R update(@RequestBody T entity){ boolean b = baseServiceImpl.updateById(entity); return getCommonReturnMsg(b,UPDATE_MSG); } /** * 根据单个Id进行删除 * @param id * @return */ @DeleteMapping(value = "/{id}") @ResponseBody public R delete(@PathVariable PK id){ boolean b = baseServiceImpl.deleteById(id); return getCommonReturnMsg(b,DELETE_MSG); } /** * 批量删除数据 * @param ids * @return */ @DeleteMapping(value = "/delete") @ResponseBody public R delete(@RequestBody List ids){ boolean b = baseServiceImpl.deleteBatchIds(ids); if(b){ return R.ok(getSuccessResultMsg(DELETE_MSG)); }else{ return R.ok(getFailResultMsg(DELETE_MSG)); } } /** * 查询(非删除状态的)所有数据 * @return */ @GetMapping(value = "/all") @ResponseBody public R all(){ //如果需要排除删除逻辑状态的数据,请根据注释部分重写 //EntityWrapper wrapper = new EntityWrapper<>(); //wrapper.and(DELETE_STATUS_PREFIX+DB_DELETE); List list = baseServiceImpl.selectList(null); return R.ok().put(List_Result_Key,list); } /** * 分页查询,无查询参数,如需要动态查询,则自己重写该方法 * @param pageNum * @param pageSize * @return */ @GetMapping(value = "/listByPage") @ResponseBody public R listByPage(Integer pageNum, Integer pageSize){ pageNum = pageNum == null? PageConstant.PAGE_NUM:pageNum; pageSize = pageSize == null?PageConstant.PAGE_SIZE:pageSize; //开启分页 Page page = new Page(pageNum, pageSize); //查询 page = baseServiceImpl.selectPage(page); return R.ok().put(Page_Result_Key,page); } /** * 获取所有请求参数,封装为map对象 * @return */ public Map getParameterMap(){ Enumeration enumeration = request.getParameterNames(); Map parameterMap = new HashMap(); while (enumeration.hasMoreElements()){ String key = enumeration.nextElement(); String value = request.getParameter(key); parameterMap.put(key,value); } return parameterMap; } /** * 设置分页参数 * @param pageNum * @param pageSize * @param * @return */ protected Page setPage(Integer pageNum,Integer pageSize){ pageNum = pageNum == null? PageConstant.PAGE_NUM:pageNum; pageSize = pageSize == null?PageConstant.PAGE_SIZE:pageSize; return new Page<>(pageNum,pageSize); } /** * 将HttpServletRequest和response封装到ServletWebRequest中 * @return */ public ServletWebRequest getServletWebRequest(){ return new ServletWebRequest(request,response); } } ``` 具体请查看本文源码 https://gitee.com/hdl_1107/springboot-mybatis-plus-ctl.git 如果能够学习并简化代码的方法,乃是我们程序员居家必备之良品。学习并优化代码,写更少的代码,实现更多的功能。