美文网首页
MyBatis-Plus代码生成器

MyBatis-Plus代码生成器

作者: 落寞绅士 | 来源:发表于2022-05-12 08:56 被阅读0次

    官方参考地址

    https://baomidou.com/pages/779a6e/

    1.导入代码生成器Maven包

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>latest-generator-version</version>
    </dependency>
    

    2.在项目test中添加生成器代码

    注意:代码中dbname为你的数据库名,modulename为你项目中父包模块名

        /**
         * mybatis-plus 代码生成器(生成的时候需要修改表明)
         */
        @Test
        void codeGenerator() {
            FastAutoGenerator
                    // 数据源配置
                    .create("jdbc:mysql://localhost:3306/dbname", "root", "root")
                    // 全局配置
                    .globalConfig(builder -> {
                        builder.author("hcw") // 设置作者
                                .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定输出目录
                                .commentDate("yyyy-MM-dd")   //注释日期
                                .enableSwagger()
                                .disableOpenDir();   //禁止打开输出目录,默认:true
                    })
                    // 包配置
                    .packageConfig(builder -> {
                        builder.parent("com.hcw") // 设置父包名
                                .moduleName("modulename") // 设置父包模块名
                                .controller("controller")
                                .mapper("mapper")
                                .entity("pojo") // pojo 实体类包名,其它包名同理
                                .service("service")
                                .serviceImpl("service.impl")
                                .other("utils") // 自定义文件包名
                                .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"/src/main/resources/mapper")); // 设置mapperXml生成路径
                    })
                    // 策略配置
                    .strategyConfig(builder -> {
                        builder.addInclude(scanner("表名")) // 设置需要生成的表名
                                .addTablePrefix("t_", "c_") // 设置过滤表前缀
    
                                // entity 策略配置
                                .entityBuilder()
                                .enableLombok()
                                .logicDeleteColumnName("deleted") //逻辑删除字段名
                                .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命
                                .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命
                                .addTableFills(
                                        new Column("create_time", FieldFill.INSERT),
                                        new Column("modify_time", FieldFill.INSERT_UPDATE)
                                )   //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
                                .enableTableFieldAnnotation()       // 开启生成实体时生成字段注解
    
                                // mapper 策略配置
                                .mapperBuilder()
                                .superClass(BaseMapper.class)   //设置父类
                                .formatMapperFileName("%sMapper")   //格式化 mapper 文件名称
                                .enableMapperAnnotation()       //开启 @Mapper 注解
                                .formatXmlFileName("%sMapper") //格式化 Xml 文件名称 如 UserMapper
    
                                // service 策略配置
                                .serviceBuilder()
                                .formatServiceFileName("%sService") // 如:UserService
                                .formatServiceImplFileName("%sServiceImpl") // 如:UserServiceImpl
    
                                // controller 策略配置
                                .controllerBuilder()
                                .formatFileName("%sController") // 如 UserController
                                .enableRestStyle();  //开启生成 @RestController 控制器
    
                    })
                    // 模板配置
                    // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                    // 执行
                    .execute();
        }
    
        /**
         * <p>
         * 读取控制台内容
         * </p>
         */
        public static String scanner(String tip) {
            Scanner scanner = new Scanner(System.in);
            StringBuilder help = new StringBuilder();
            help.append("请输入" + tip + ":");
            System.out.println(help.toString());
            if (scanner.hasNext()) {
                String ipt = scanner.next();
                if (StringUtils.isNotBlank(ipt)) {
                    return ipt;
                }
            }
            throw new MybatisPlusException("请输入正确的" + tip + "!");
        }
    

    相关文章

      网友评论

          本文标题:MyBatis-Plus代码生成器

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