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

已知使用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());
                }
            }
        }
    }

待续

相关推荐
小坏讲微服务18 小时前
Spring Cloud Alibaba整合 Kafka 的完整实现
分布式·spring cloud·kafka·消息队列·springboot·linq
charlie1145141911 天前
从 0 开始:在 WSL + VSCode 上利用 Maven 构建 Java Spring Boot 工程
java·笔记·vscode·后端·学习·maven·springboot
这人很懒没留下什么3 天前
SpringBoot2.7.4整合RabbitMq
rabbitmq·springboot
千寻技术帮3 天前
50036_基于微信小程序的智能点餐推荐系统
小程序·源码·springboot·文档
言一木3 天前
【国产化】金蝶MQ验证
springboot·国产化·消息中间件
这周也會开心3 天前
SpringBootTest和SpringBootApplication
springboot
她说..4 天前
基于Redis实现的分布式唯一编号生成工具类
java·数据库·redis·分布式·springboot
最后1114 天前
lamp-cloud 5.7.0 发布,新增缓存清理 + 修复优化全覆盖
java·后端·spring·缓存·springboot·springcloud
bcgbsh7 天前
身份认证状态的存储与传递( Spring Boot篇 )
springboot·登录
xiezhr7 天前
Java开发中最那些常见的坑,你踩过几个?
java·spring·springboot·后端开发