mybatisFlex代码生成

文章介绍了在SpringBoot项目中集成MybatisFlex进行代码生成的过程,包括添加相关依赖,配置数据源,以及两种不同的代码生成原则,适合自定义表生成和全局配置。
摘要由CSDN通过智能技术生成

mybatisFlex代码生成:
首先:创建一个springboot项目
相关依赖:创建没用依赖的空项目可以直接复用

    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!--web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--mybatisFlex-->
        <dependency>
            <groupId>com.mybatis-flex</groupId>
            <artifactId>mybatis-flex-spring-boot-starter</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </dependency>
        <!-- for test only -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--mybatisFlex代码生成器依赖-->
        <dependency>
            <groupId>com.mybatis-flex</groupId>
            <artifactId>mybatis-flex-codegen</artifactId>
            <version>1.5.6</version>
        </dependency>
        <!--添加jdbc驱动-->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>4.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.32</version>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>

编写一个生成工具类:


public class CodegenMybatisFlexCodegen {
    public static void main(String[] args) {
        //配置数据源
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/?characterEncoding=utf-8");
        dataSource.setUsername("xxx");
        dataSource.setPassword("xxx");

        //创建配置内容,两种风格都可以。
        // 默认配置
        GlobalConfig globalConfig = createGlobalConfigUseStyle1();
        // 指定配置
//        GlobalConfig globalConfig = createGlobalConfigUseStyle2();

        //通过 datasource 和 globalConfig 创建代码生成器
        Generator generator = new Generator(dataSource, globalConfig);

        //生成代码
        generator.generate();
    }

    /**
     * 生成原则1
     * 直接生成
     *
     * @return
     */
    public static GlobalConfig createGlobalConfigUseStyle1() {
        //创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();

        //设置根包
        globalConfig.setBasePackage("com.example.mybatisflax");

        //设置表前缀和只生成哪些表
        // 前缀,没有不加
//        globalConfig.setTablePrefix("tb_");
        // 填写需要生成的表
        globalConfig.getStrategyConfig()
                // 生成所有表
                .setGenerateSchema("demo");
//        globalConfig.setGenerateTable("es_goods", "es_product", "es_product_store", "goods", "norms_value", "product", "store", "test_table", "wechat_user");

        //设置生成 entity
        globalConfig.setEntityGenerateEnable(true);
        // 启用 Lombok
        globalConfig.setEntityWithLombok(true);
        //设置生成 mapper
        globalConfig.setMapperGenerateEnable(true);
        // 控制类
        globalConfig.setControllerGenerateEnable(true);
        // 服务类
        globalConfig.setServiceGenerateEnable(true);
        // 服务实现类
        globalConfig.setServiceImplGenerateEnable(true);
        // 文件
        globalConfig.setMapperXmlGenerateEnable(true);
        // 表定义辅助类
//        globalConfig.setTableDefGenerateEnable(true);

        // 注释配置
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String format = dateFormat.format(date);
        globalConfig.getJavadocConfig()
                .setAuthor("你的鼎鼎大名")
                .setSince(format);
        return globalConfig;
    }

    /**
     * 生成原则2
     * 自定义生成
     *
     * @return
     */
    public static GlobalConfig createGlobalConfigUseStyle2() {
        //创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();

        //设置根包
        globalConfig.getPackageConfig()
                .setBasePackage("com.example.mybatisflax");

        //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
        globalConfig.getStrategyConfig()
                // 生成所有表
                .setGenerateSchema("demo");
        // 制定表生成
        //可以单独配置某个表
//                .setGenerateTable("es_goods");
//                .setGenerateTable("es_goods", "es_product", "es_product_store", "goods", "norms_value", "product", "store", "test_table", "wechat_user");

        //设置生成 entity 并启用 Lombok
        globalConfig.enableEntity().setWithLombok(true);
        globalConfig.getMapperConfig()
                .setClassPrefix("My")
                .setClassSuffix("Entity");


        //设置生成 mapper
        globalConfig.enableMapper();
        globalConfig.getMapperConfig()
                .setClassPrefix("My")
                .setClassSuffix("mapper");


        // 设置生成Controller
        globalConfig.enableController();
        globalConfig.getControllerConfig()
                .setClassPrefix("My")
                .setClassSuffix("Controller")
                .setRestStyle(true);


        // 设置生成Service
        globalConfig.enableService();
        globalConfig.getServiceConfig()
                .setClassPrefix("My")
                .setClassSuffix("Service")
                .setSuperClass(IService.class);

        // 设置serviceImpl
        globalConfig.enableServiceImpl();
        globalConfig.getServiceImplConfig()
                .setClassPrefix("My")
                .setClassSuffix("ServiceImpl")
                .setSuperClass(ServiceImpl.class);


        // 生成MapperXml
        globalConfig.enableMapperXml();
        globalConfig.getMapperXmlConfig()
                .setFilePrefix("My")
                .setFileSuffix("Mapper");


        // 生成配置 TableDefConfig
//        globalConfig.enableTableDef();
//        globalConfig.getTableDefConfig()
//                .setClassPrefix("My")
//                .setClassSuffix("Def");

        // 注释配置
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String format = dateFormat.format(date);
        globalConfig.getJavadocConfig()
                .setAuthor("你的鼎鼎大名")
                .setSince(format);

        return globalConfig;
    }
}

最后生成的效果:
在这里插入图片描述
这里小白已经调试过了,修改相关数据库就行了
《两种生成方式》
在这里插入在这里插入图片描述
有兴趣的小伙伴可以试一下哦,很多东西还是得符合自己的业务哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨笔之风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值