前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis-flex自动生成代码类

MyBatis-flex自动生成代码类

作者头像
4xx.me
发布2023-08-24 10:56:25
5060
发布2023-08-24 10:56:25
举报

MyBatis-flex自动生成代码类,读取配置文件里的数据库信息

1. 引入maven包

代码语言:javascript
复制
<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-codegen</artifactId>
    <version>1.5.5</version>
</dependency>

2. 使用main方法生成

代码语言:javascript
复制
package cn.ximiyun.huameng;

import cn.hutool.setting.dialect.Props;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.mybatisflex.codegen.config.TableConfig;
import com.mybatisflex.codegen.dialect.JdbcTypeMapping;
import com.zaxxer.hikari.HikariDataSource;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * MyBatis-flex自动生成代码类
 */
public class CodeGenerator {

    public static void main(String[] args) {

        String projectPath = System.getProperty("user.dir");
        Props application = new Props(projectPath + "/src/main/resources/application.properties");

        String os = "base";
        String packageName = "cn.ximiyun.huameng." + os;
        String dataSourceName = application.getStr("spring.datasource.username");
        String dataSourcePassword = application.getStr("spring.datasource.password");
        String dataSourceUrl = application.getStr("spring.datasource.url");
        //需要生成的表
        String[] tables = "base_admin_user_info".split(",");
        //是否生成model
        boolean isModel = true;
        //是否生成dao
        boolean isDao = true;
        //是否生成Mapper
        boolean isMapper = true;

        //配置数据源
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl(dataSourceUrl+"&useInformationSchema=true");
        dataSource.setUsername(dataSourceName);
        dataSource.setPassword(dataSourcePassword);

        //创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();

        //设置根包
        globalConfig.setBasePackage(packageName);
        globalConfig.setEntityPackage(packageName+".model");
        globalConfig.setMapperPackage(packageName+".dao");
        globalConfig.setMapperXmlPath(projectPath.concat("/src/main/resources/mapper/"+os));

        globalConfig.getJavadocConfig().setAuthor("GMQ");

        //设置表前缀和只生成哪些表
        globalConfig.setGenerateTable(tables);

        //设置生成 entity 并启用 Lombok
        globalConfig.setEntityGenerateEnable(isModel);
        globalConfig.setEntityWithLombok(true);
        globalConfig.setEntityOverwriteEnable(true);
//        globalConfig.setTableDefGenerateEnable(isModel);
//        globalConfig.setTableDefOverwriteEnable(true);
//        globalConfig.setTableDefPropertiesNameStyle(TableDefConfig.NameStyle.UPPER_CAMEL_CASE);

        //设置生成 mapper
        globalConfig.setMapperGenerateEnable(isDao);
        globalConfig.setMapperClassSuffix("Dao");

        globalConfig.setMapperXmlGenerateEnable(isMapper);

        //表设置
        TableConfig tableConfig = new TableConfig();
        tableConfig.setMapperGenerateEnable(false);
        globalConfig.setTableConfig(tableConfig);

        JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class);

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

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

}

生成效果如图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 引入maven包
  • 2. 使用main方法生成
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档