美文网首页
MybatisPlus代码生成器

MybatisPlus代码生成器

作者: sunpy | 来源:发表于2024-01-13 22:01 被阅读0次

官网地址

https://baomidou.com/pages/981406/#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE-globalconfig

官网地址相当于使用说明书,下面的用法,最好照着官网边查询边去做,通过实验去佐证结论。

pom引入包

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${mybatis-plus-generator.version}</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus-boot-starter.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>${velocity-engine-core.version}</version>
        </dependency>

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>${freemarker.version}</version>
        </dependency>

代码实现

public class CodeGen {

    public static void gen(List<String> tableNameArr) {
        String url = "jdbc:mysql://192.168.0.120:3306/spyu_blog?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "xxxx";
        String password = "xxxxxxxxxxxxx";
        String dirPath = System.getProperty("user.dir") + "/src/main/java";
        String xmlPath = System.getProperty("user.dir") + "/src/main/java/com/sunpy/blog/xml";

        FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(url, username, password);

        /**
         * 全局配置
         */
        fastAutoGenerator.globalConfig(builder -> {
            // 设置注释作者
            builder.author("spyu")
                    // 禁止打开输出目录
                    .disableOpenDir()
                    // 开启swagger
                    .enableSwagger()
                    // 时间策略
                    .dateType(DateType.ONLY_DATE)
                    // 设置注释时间
                    .commentDate("yyyy-MM-dd")
                    // 输出到指定的文件夹位置
                    .outputDir(dirPath);
        });

        /**
         * 包配置
         */
        fastAutoGenerator.packageConfig(builder -> {
            // 设置父包名
            builder.parent("com.sunpy.blog")
                    // 设置controller包
                    .controller("controller")
                    // 设置dao接口包
                    .mapper("dao")
                    // 设置service服务接口包
                    .service("service")
                    // 设置service实现类包
                    .serviceImpl("service.impl")
                    // 设置po类包
                    .entity("po")
                    // 设置dto类包
                    .other("dto")
                    // 设置xml类包
                    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, xmlPath));
        });

        /**
         * 策略模式
         */
        fastAutoGenerator.strategyConfig(builder -> {
            // 设置要生成的表名
            builder.addInclude(tableNameArr);

            builder.entityBuilder()
                    // 开启 lombok 模型
                    .enableLombok()
                    // 开启链式模型
                    .enableChainModel()
                    // 数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
                    .naming(NamingStrategy.underline_to_camel)
                    // 表字段映射实体属性命名规则:默认null,不指定按照naming执行
                    .columnNaming(NamingStrategy.underline_to_camel)
                    // 添加全局主键类型
                    .idType(IdType.AUTO)
                    // 格式化实体名称,%s取消首字母I
                    .formatFileName("%sPo");

            builder.mapperBuilder()
                    // 开启mapper注解
                    .enableMapperAnnotation()
                    // 启用xml文件中的BaseResultMap生成
                    .enableBaseResultMap()
                    // 启用xml文件中的BaseColumnList
                    .enableBaseColumnList()
                    // 格式化Dao类名称
                    .formatMapperFileName("%sDao")
                    // 格式化xml文件名称
                    .formatXmlFileName("%sMapper");

            builder.serviceBuilder()
                    //格式化 service 接口文件名称
                    .formatServiceFileName("%sService")
                    //格式化 service 实现类文件名称
                    .formatServiceImplFileName("%sServiceImpl");

            builder.controllerBuilder()
                    // 开启生成@RestController控制器
                    .enableRestStyle()
                    .formatFileName("%sController");
        });

        fastAutoGenerator.execute();
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("article_content");
        gen(list);
    }
}

相关文章

网友评论

      本文标题:MybatisPlus代码生成器

      本文链接:https://www.haomeiwen.com/subject/qarqodtx.html