广告
返回顶部
首页 > 资讯 > 数据库 >Mybatis-Plus一键生成代码
  • 894
分享到

Mybatis-Plus一键生成代码

Mybatis-Plus一键生成代码 2021-09-26 11:09:13 894人浏览 绘本
摘要

mybatis-Plus一键生成代码 一、闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二、引入依赖 新的代码生成只有在MP的版本 >= 3.5.1才可以使

Mybatis-Plus一键生成代码

mybatis-Plus一键生成代码

一、闲言碎语

闲来无事看了看了MP的官网看到一键生成的代码更新了!

image

整个Ui风格都变了,遂决定瞅一眼新的代码生成器

官网地址~~

二、引入依赖

新的代码生成只有在MP的版本 >= 3.5.1才可以使用 并且不兼容之前的版本


        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.0
        

        
            com.baomidou
            mybatis-plus-generator
            3.5.1
        

        
            org.freemarker
            freemarker
            2.3.31
        

        
            io.swagger
            swagger-annotations
            1.6.2
        

swagger可取舍,如果开启Lombok则可以不使用

三、配置

1、快速生成(简介版)

FastAutoGenerator.create("url", "username", "password")
    .globalConfig(builder -> {
        builder.author("baomidou") // 设置作者
            .enableSwagger() // 开启 swagger 模式
            .fileOverride() // 覆盖已生成文件
            .outputDir("D://"); // 指定输出目录
    })
    .packageConfig(builder -> {
        builder.parent("com.baomidou.mybatisplus.samples.generator") // 设置父包名
            .moduleName("system") // 设置父包模块名
            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") +)); // 设置mapperXml生成路径 前边是取项目路径
    })
    .strategyConfig(builder -> {
        builder.addInclude("t_simple") // 设置需要生成的表名,不设置生成全表
            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
    })
    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
    .execute();

2、快速生成(详细版)

public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/daydayup?useUnicode=true&useSSL=false&characterEncoding=utf8", "root", "root")
                .globalConfig(builder -> {
                    builder.author("知足") // 设置作者
                            .enableSwagger() // 开启 swagger 模式  可理解为接口文档规范
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("") // 设置父包名
                            .moduleName("") // 设置父包模块名
                            .entity("entity")
                            .controller("controller")
                            .service("service")
                            .serviceImpl("imp") //设置包名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/srca/main/resources/mapper/")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("表名")// 设置需要生成的表名 不使用该方法默认生成全表
                            .addTablePrefix("t_", "c_") // 设置过滤表前缀
                            .serviceBuilder()//Service配置
                            .fORMatServiceFileName("%sService")//%s = 表名  表名Service
                            .formatServiceImplFileName("%sServiceImp")//同上
                            .entityBuilder()//实体类配置 一般都是表名
                            .enableLombok()//开启Lombok 开启 swagger 模式 就没必要使用这个
                            .logicDeleteColumnName()//逻辑删除字段对应数据库那个字段
                            .logicDeletePropertyName()//逻辑删除字段对应实体类库那个字段
                            .controllerBuilder()//Controller配置
                            .formatFileName("%sController")
                            .enableRestStyle()//开启生成@RestController控制器
                            .mapperBuilder()//mapper配置
                            .formatMapperFileName("%sMapper")
                            .formatXmlFileName("%sMapper")
                            .enableMapperAnnotation()//开启@Mapper
                            .superClass(BaseMapper.class);//继承的父类
                })
                // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();//傻逼代码 生成完自己打开目录

    }

3、交互生成(暂未研究)

FastAutoGenerator.create(DATA_SOURCE_CONFIG)
    // 全局配置
    .globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称?")).fileOverride())
    // 包配置
    .packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入包名?")))
    // 策略配置
    .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
                        .controllerBuilder().enableRestStyle().enableHyphenStyle()
                        .entityBuilder().enableLombok().addTableFills(
                                new Column("create_time", FieldFill.INSERT)
                        ).build())
    
    .execute();


// 处理 all 情况
protected static List getTables(String tables) {
    return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}

还有好多好玩的配置~不一一演示,生成完老是打开生成文件目录,看源码是有一个Open()不知道怎么让他不打开

image

image

迷途者寻影而行
您可能感兴趣的文档:

--结束END--

本文标题: Mybatis-Plus一键生成代码

本文链接: https://www.lsjlt.com/news/9026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作