使用Freemarker生成service和Controller

import com.baomidou.mybatisplus.extension.service.IService;

import com.resume.domain.${className};

import java.util.List;

/**

  • @Author: 梁云亮

  • @Date: 2021/7/14 13:51

  • @Describe:

*/

public interface c l a s s N a m e S e r v i c e e x t e n d s I S e r v i c e < {className}Service extends IService< classNameServiceextendsIService<{className}> {

/**

  • 查询出所有的可以使用的${comment}信息

  • @return

*/

List< c l a s s N a m e > l i s t A l l U s a b l e {className}> listAllUsable className>listAllUsable{className}();

/**

  • 改变指定编号的${comment}的状态

  • @param id

  • @param status

  • @return 返回值表示受影响的记录的行数

*/

boolean modify${className}Status(Integer id, Integer status);

/**

  • 根据条件修改${comment}信息

  • @param ${objName}

  • @return

*/

boolean modify(${className} ${objName});

}

service实现类模板


package com.resume.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.resume.constant.GlobalConst;

import com.resume.domain.${className};

import com.resume.mapper.${className}Mapper;

import com.resume.service.${className}Service;

import org.springframework.stereotype.Service;

import java.util.List;

/**

  • @Author: 梁云亮

  • @Date: 2021/7/14 13:51

  • @Describe:

*/

@Service

public class c l a s s N a m e S e r v i c e I m p l e x t e n d s S e r v i c e I m p l < {className}ServiceImpl extends ServiceImpl< classNameServiceImplextendsServiceImpl<{className}Mapper, ${className}> implements ${className}Service {

@Override

public List< c l a s s N a m e > l i s t A l l U s a b l e {className}> listAllUsable className>listAllUsable{className}() {

QueryWrapper<${className}> queryWrapper = new QueryWrapper<>();

queryWrapper.select(“id”, “name”, “info”)

.eq(“status”, GlobalConst.Common.STATUS_ENABLE);// 1 表示显示

List<${className}> ${objName}List = baseMapper.selectList(queryWrapper);

return ${objName}List;

}

@Override

public boolean modify${className}Status(Integer id, Integer status) {

${className} ${objName} = ${className}.builder()

.id(id)

.status(status)

.build();

int res = baseMapper.updateById(${objName});

return res == 1 ? true : false;

}

@Override

public boolean modify(${className} ${objName}) {

QueryWrapper<${className}> queryWrapper = new QueryWrapper<>();

queryWrapper.eq(“id”,${objName}.getId());

int updateRes = baseMapper.update(${objName}, queryWrapper);

return updateRes == 1 ? true : false;

}

}

控制器模板


package com.resume.controller;

import com.resume.bean.DataTableResponse;

import com.resume.bean.Result;

import com.resume.bean.ResultUtil;

import com.resume.constant.GlobalConst;

import com.resume.domain.${className};

import com.resume.enums.ResultEnum;

import com.resume.ex.ResumeException;

import com.resume.service.${className}Service;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import java.util.List;

/**

  • @Author: 梁云亮

  • @Date: 2021/7/16 16:17

  • @Describe:

*/

@Api(value = “ c o m m e n t 控制器: {comment}控制器: comment控制器:{className}Controller”,tags = “ c l a s s N a m e C o n t r o l l e r : {className}Controller: classNameController{comment}控制器”)

@Controller

@RequestMapping(“/${objName}”)

public class ${className}Controller {

@Resource

private ${className}Service ${objName}Service;

@ApiOperation(value = “打开 c o m m e n t 列表页面 " , n o t e s = " 打开 {comment}列表页面", notes = "打开 comment列表页面",notes="打开{comment}列表页面”)

@GetMapping(“/open${className}”)

public String open${className}(){

return “/base/${objName}”;

}

@ApiOperation(value = “显示 c o m m e n t 列表 " , n o t e s = " 显示 {comment}列表", notes = "显示 comment列表",notes="显示{comment}列表”)

@ResponseBody

@GetMapping(“/v1/list”)

public Result <DataTableResponse<${className}>> list() {

List<${className}> ${objName}List = o b j N a m e S e r v i c e . l i s t A l l U s a b l e {objName}Service.listAllUsable objNameService.listAllUsable{className}();

DataTableResponse<${className}> dataTableResponse = new DataTableResponse<>();

dataTableResponse.setSEcho(3);

dataTableResponse.setITotalRecords(80L);

dataTableResponse.setITotalDisplayRecords(70L);

dataTableResponse.setAaData(${objName}List);

return ResultUtil.success(200, “数据查询成功”, dataTableResponse);

}

@ApiOperation(value = “删除 c o m m e n t " , n o t e s = " 根据编号删除 {comment}", notes = "根据编号删除 comment",notes="根据编号删除{comment}”)

@ResponseBody

@GetMapping(“/v1/remove”)

public Result remove(Integer id) {

try {

o b j N a m e S e r v i c e . m o d i f y {objName}Service.modify objNameService.modify{className}Status(id, GlobalConst.Common.STATUS_DISABLE);

return ResultUtil.success(ResultEnum.SUCCESS);

} catch (Exception e) {

throw new ResumeException(ResultEnum.SQL_ERROR);

}

}

@ApiOperation(value = “修改 c o m m e n t " , n o t e s = " 根据编号修改 {comment}", notes = "根据编号修改 comment",notes="根据编号修改{comment}”)

@ResponseBody

@GetMapping(“/v1/modify”)

public Result modify(${className} ${objName}) {

try {

o b j N a m e S e r v i c e . m o d i f y ( {objName}Service.modify( objNameService.modify({objName});

return ResultUtil.success(ResultEnum.SUCCESS);

} catch (Exception e) {

throw new ResumeException(ResultEnum.SQL_ERROR);

}

}

@ApiOperation(value = “增加 c o m m e n t " , n o t e s = " 增加 {comment}", notes = "增加 comment",notes="增加{comment}”)

@ResponseBody

@GetMapping(“/v1/create”)

public Result create(${className} ${objName}) {

try {

o b j N a m e S e r v i c e . s a v e ( {objName}Service.save( objNameService.save({objName});

return ResultUtil.success(ResultEnum.SUCCESS);

} catch (Exception e) {

throw new ResumeException(ResultEnum.SQL_ERROR);

}

}

}

Freemarker工具类


import freemarker.template.Configuration;

import freemarker.template.Template;

import freemarker.template.TemplateException;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Writer;

import java.util.Map;

/**

  • @author 梁云亮

  • @description Freemarker工具类

*/

public class FreemarkerUtil {

/**

  • 根据模板,利用提供的数据,生成文件

  • @param ftlNameWithPath 模板文件

  • @param data 数据

  • @param aimFileName 最终生成的文件
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可获取,包括答案解析。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-gEHD0bBC-1713106974094)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可获取,包括答案解析。

[外链图片转存中…(img-R8G6U57l-1713106974095)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值