若依笔记(四):代码生成器

已知使用MyBatisPlus代码生成器可以自动生成Entity、Mapper、Service、Controller代码,前提是数据库中有数据表,生成pojo类以及对于该数据表的增删改查命令的代码,若依更进一步能选择表后生成代码、预览、下载,同时可以生产前端代码,与后端一起还能实现权限管理和数据隔离。

入口是有路由权限的前端index.vue,点击后调用api.js后发起后端请求,后端过controller-->service-->maapper查询请求;

核心就是generatorCode方法:

java 复制代码
    @Override
    public void generatorCode(String tableName)
    {
        // 查询表信息
        GenTable table = genTableMapper.selectGenTableByName(tableName);
        // 设置主子表信息
        setSubTable(table);
        // 设置主键列信息
        setPkColumn(table);

        VelocityInitializer.initVelocity();

        VelocityContext context = VelocityUtils.prepareContext(table);

        // 获取模板列表
        List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
        for (String template : templates)
        {
            if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm"))
            {
                // 渲染模板
                StringWriter sw = new StringWriter();
                Template tpl = Velocity.getTemplate(template, Constants.UTF8);
                tpl.merge(context, sw);
                try
                {
                    String path = getGenPath(table, template);
                    FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8);
                }
                catch (IOException e)
                {
                    throw new ServiceException("渲染模板失败,表名:" + table.getTableName());
                }
            }
        }
    }

待续

相关推荐
caihuayuan41 天前
react拖曳组件react-dnd的简单封装使用
sql·spring·vue·springboot·课程设计
工一木子1 天前
【工具使用】IDEA 社区版如何创建 Spring Boot 项目(详细教程)
springboot·idea
源码姑娘2 天前
基于DeepSeek的智慧医药系统(源码+部署教程)
java·人工智能·程序人生·毕业设计·springboot·健康医疗·课程设计
程序员小白条2 天前
【大学生体质】智能 AI 旅游推荐平台(Vue+SpringBoot3)-完整部署教程
java·程序员·vue·springboot·毕设·管理系统·课设
Kale又菜又爱玩5 天前
Logback:高性能日志框架完全指南
java·springboot·logback
Jing_saveSlave6 天前
基于 Spring Boot 的企业级快速启动模板 —— spring-quick
spring boot·后端·spring·springboot·敏捷开发·脚手架·企业级
LUCIAZZZ7 天前
ThreadLocal的Key是弱引用给垃圾回收带来的问题
java·开发语言·jvm·spring·springboot
放学-别走12 天前
基于springboot 以及vue前后端分离架构的求职招聘系统设计与实现
java·mysql·spring·vue·毕业设计·springboot·毕设
陌殇殇12 天前
004 Kafka异常处理
中间件·kafka·springboot
在线打码12 天前
OpenAPI Generator:API开发的瑞士军刀
后端·jmeter·springboot·yaml·openapi