mybatis-plus的使用及生成自定义模板(包含Vue,JS)

 

根据模板引擎的不同,有不同的模板,.vm为velocity引擎的,.ftl为freemarker引擎的。

下图是项目里 引用的mybatis-plus包的官方模板,copy一份出来,照着改就行

自定义模板放到resource下

    /**
     * 初始化模板配置
     */
    private static TemplateConfig initTemplateConfig() {
        TemplateConfig templateConfig = new TemplateConfig();
        //可以对controller、service、entity模板进行配置
        //mapper.xml模板需单独配置
        templateConfig.setController("/mybatistemplate/controller.java.vm");
        templateConfig.setXml(null);
        return templateConfig;
    }

贴一下我们项目改后的controller模板, 

#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end

/**
 * <p>
 * $!{table.comment} Controller
 * </p>
 *
 * @author ${author}
 * @since ${date}
 */
#if(${restControllerStyle})
@RestController
#else
@Controller
#end
@Api(tags = "${table.controllerName}", description = "$!{table.comment} Controller")
@ResourceAuthorize("${table.name}")
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
#if(${kotlin})
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end

#else
#if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} {
#else
public class ${table.controllerName} {
#end

    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private ${table.serviceName} i${entity}Service;

    /**
     * 查询分页数据
     */
    @ApiOperation(value = "查询分页数据")
    @GetMapping(value = "/list")
    public CommonResult<CommonPage<${entity}>> findListByPage(@ApiParam ${entity} entity,
                                                              @RequestParam(defaultValue = "1") int pageNum,
                                                              @RequestParam(defaultValue = "50") int pageSize) {
        UmsAdmin admin = CurrentUserAdmin.instance();

        Page<${entity}> list = i${entity}Service.page(new Page<>(pageNum, pageSize));
        return CommonResult.success(CommonPage.restPage(list));
    }


    /**
     * 根据id查询
     */
    @ApiOperation(value = "根据id查询数据")
    @GetMapping(value = "/{id}")
    public CommonResult<${entity}> getById(@PathVariable Long id) {
        ${entity} entity = i${entity}Service.getById(id);
        return CommonResult.success(entity);
    }

    /**
     * 新增
     */
    @ApiOperation(value = "新增数据")
    @PostMapping(value = "/create")
    public CommonResult add(@ApiParam @RequestBody ${entity} entity) {
        boolean success = i${entity}Service.saveOrUpdate(entity);
        return CommonResult.result(success);
    }

    /**
     * 删除单条记录
     */
    @ApiOperation(value = "删除单条记录")
    @PostMapping(value = "/delete/{id}")
    public CommonResult delete(@PathVariable Long id) {
        boolean success = i${entity}Service.removeById(id);
        return CommonResult.result(success);
    }

}

#end

Velocity 模板如何显示 $! , ${} 等特殊符号

//如果$foo未定义过
$foo 输出:$foo
\$foo 输出:\$foo
\\$foo 输出:\\$foo
\\\$foo 输出:\\\$foo

//如果$foo已经定义过
#set($foo="bar")
$foo 输出:bar
\$foo 输出:$foo
\\$foo  输出:\bar
\\\$foo 输出:\$foo    

不过用起来不是很准确,改为

#set($Axios="$Axios") //在文件顶部定义

//使用
this.${message}({message: '请求异常,请重试', type: 'error', duration: 1000});

 

Velocity 首字母都自动转大写

#set ($validName = $NAME.substring(0, 1).toUpperCase() + $NAME.substring(1))
public class ${validName} implements Serializable {
}

如果用户填写类名不是以”DTO“、“VO”结尾的,那就缺省“DTO”结尾

## 确保以NAME以DTO、Input、PO或VO结尾,缺省为以DTO结尾
#if (!$validName.endsWith("DTO")
        && !$validName.endsWith("Input")
        && !$validName.endsWith("PO")
        && !$validName.endsWith("VO"))
    #set ($validName = $validName + "DTO")
#else
    #set ($validName = $validName)
#end

驼峰字符串转蛇形字符串

## Model名称转化为snake分割(将所有大写字符前面加下划线,然后字符串转小写,最后删除第一个下划线)
#set( $regex = "([A-Z])")
#set( $replacement = "_$1")
#set( $classMapping = $modelName.replaceAll($regex, $replacement).toLowerCase().substring(1))

以上直接使用mybatis-plus的包就行,如果要生成VUE和JS,需要checkout源码,进行开发

 

 

 

IntelliJ IDEA文件模板与Velocity语法 _

mybatis-plus的使用 ------ 入门

mybatis-plus的使用 ------ 进阶

 

官网

mall整合Swagger-UI实现在线API文档

 

已标记关键词 清除标记
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页