最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

天天热头条丨分享一下mybatisPlus新代码生成器3.5.1以上

来源:博客园


(相关资料图)

pom引入:有MP了就不要再引入mybatis了,会出bug的

                    com.baomidou            mybatis-plus-boot-starter            3.5.3.1                                    com.baomidou            mybatis-plus-generator            3.5.3.1                                    junit            junit            4.13.2        

代码主体,隐去ip信息。

package com.sugerqube.XXX.Utils;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.baomidou.mybatisplus.generator.FastAutoGenerator;import com.baomidou.mybatisplus.generator.config.OutputFile;import com.baomidou.mybatisplus.generator.config.rules.DateType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import org.junit.Test;import java.util.Collections;public class MPGenerator {    @Test    public void testGenerator() {        //1、配置数据源        FastAutoGenerator.create("jdbc:mysql://XXXXX/XXXXX", "root", "XXXXX")                //2、全局配置                .globalConfig(builder -> {                    builder.author("sugerqube") // 设置作者名                            .disableOpenDir()   //禁止打开输出目录,默认打开                            .outputDir(System.getProperty("user.dir") + "/src/main/java")   //设置输出路径:项目的 java 目录下                            .enableSwagger()   //开启 swagger 模式//                            .enableKotlin()//                            .enableSpringdoc()                            .dateType(DateType.ONLY_DATE)   //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;                            .commentDate("yyyy-MM-dd hh:mm:ss");   //注释日期                })                //3、包配置                .packageConfig(builder -> {                    builder.parent("com.sugerqube") // 设置父包名                            .moduleName("timecocoon")   //设置模块包名                            .entity("entity")   //pojo 实体类包名                            .service("service") //Service 包名                            .serviceImpl("serviceImpl") // ***ServiceImpl 包名                            .mapper("mapper")   //Mapper 包名                            .xml("mapper")  //Mapper XML 包名                            .controller("controller") //Controller 包名                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));  //配置 mapper.xml 路径信息:项目的 resources 目录下                })                //4、策略配置                .strategyConfig(builder -> {//                    builder.addInclude("incident_point", "incident_sum", "incident_line", "incident_cause_effect", "graph") // 设置需要生成的数据表名                    builder.addInclude("incident_point") // 设置需要生成的数据表名                            .addTablePrefix("t_", "c_") // 设置过滤表前缀                            //4.1、实体类策略配置                            .entityBuilder()                            .enableLombok() //开启 Lombok                            .disableSerialVersionUID()  //不实现 Serializable 接口,不生产 SerialVersionUID                            .logicDeleteColumnName("deleted")   //逻辑删除字段名                            .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命                            .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命                            .idType(IdType.ASSIGN_ID)//                            .addTableFills(new Column("create_time", FieldFill.INSERT))//                            .addTableFills(new Property("modifyTime", FieldFill.INSERT_UPDATE))                            .enableTableFieldAnnotation()       // 开启生成实体时生成字段注解                            .enableFileOverride()                            //4.2、Controller策略配置                            .controllerBuilder()                            .formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController                            .enableRestStyle() //开启生成 @RestController 控制器//                            .enableFileOverride()                            //4.3、service 策略配置                            .serviceBuilder()                            .formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService                            .formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl//                            .enableFileOverride()                            //4.4、Mapper策略配置                            .mapperBuilder()                            .superClass(BaseMapper.class)   //设置父类                            .formatMapperFileName("%sMapper")   //格式化 mapper 文件名称                            .enableMapperAnnotation()       //开启 @Mapper 注解//                            .enableFileOverride()                            .formatXmlFileName("%sXml"); //格式化 Xml 文件名称                })                //6、执行                .execute();    }}

下次有空写一篇详解,带大家简单讲一下使用,看一下文档和源码,新代码生成器的文档有一点点跟不上源码。

关键词: