mybatis-flex代码生成器

import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.zaxxer.hikari.HikariDataSource;
import yx.model.base.BaseEntity;

public class CodeGet {

    // 数据库地址
    static String jdbcUrl = "localhost:3306";
    // 数据库
    static String jdbcDatabase = "shequ-acl";
    // 数据库账号
    static String jdbcUserName = "root";
    // 数据库密码
    static String jdbcPassword = "123456";
    // 生成文件路径
    static String sourceDir = "F://yx-parent/service/service-acl/src/main/java";
    // 生成包路径
    static String basePackage = "yx.acl";
    // 需要生成的表
    static String generateTable = "admin";

    public static void main(String[] args) {
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl("jdbc:mysql://"+ jdbcUrl +"/"+jdbcDatabase+"?characterEncoding=utf-8");
        dataSource.setUsername(jdbcUserName);
        dataSource.setPassword(jdbcPassword);

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

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

        //生成代码
        generator.generate();
    }
    public static GlobalConfig createGlobalConfigUseStyle1() {
        //创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();

        // 设置生成 Entity 并启用 Lombok、设置父类
        globalConfig.enableEntity().setWithLombok(true).setSuperClass(BaseEntity.class);

        //设置根包
        globalConfig.getPackageConfig()
                    .setSourceDir(sourceDir)
                    .setBasePackage(basePackage);

        //设置表前缀和只生成哪些表
//        globalConfig.setGenerateSchema("shequ-acl");
//        globalConfig.setTablePrefix("tb_");
        globalConfig.setGenerateTable(generateTable);

        //设置生成 entity 并启用 Lombok
        globalConfig.setEntityGenerateEnable(true);
        globalConfig.setEntityWithLombok(true);
        //设置生成 mapper
        globalConfig.setMapperGenerateEnable(true);
        //设置生成 service
        globalConfig.setServiceGenerateEnable(true);
        //设置生成 serviceImpl
        globalConfig.setServiceImplGenerateEnable(true);
        //设置生成 controller
        globalConfig.setControllerGenerateEnable(true);
        //设置生成 mapperXml
        globalConfig.setMapperXmlGenerateEnable(true);

        //可以单独配置某个列
//        ColumnConfig columnConfig = new ColumnConfig();
//        columnConfig.setColumnName("tenant_id");
//        columnConfig.setLarge(true);
//        columnConfig.setVersion(true);
//        globalConfig.setColumnConfig("account", columnConfig);

        return globalConfig;
    }

}
### 使用 MyBatis-Flex 进行代码生成 MyBatis-Flex 提供了一套强大的代码生成功能,能够显著减少手动编写重复代码的工作量。通过集成模板引擎和配置文件,可以自动生成实体类、Mapper接口以及对应的XML映射文件。 #### 配置环境 为了使用MyBatis-Flex代码生成功能,需先引入必要的依赖库[^1]: ```xml <dependency> <groupId>net.hasor</groupId> <artifactId>mybatis-flex-codegen</artifactId> <version>${mybatis.flex.version}</version> </dependency> ``` #### 创建代码生成器实例 接下来定义一个`CodeGenerator`对象用于启动整个流程。此过程中需要指定数据源连接信息、目标包路径以及其他必要参数[^2]: ```java DataSource dataSource = ...; // 初始化数据源 String packageName = "com.example"; // 设置基础包名 String outputDir = "./src/main/java/"; // 输出目录 // 构建 CodeGenerator 实例 CodeGenerator codeGenerator = new CodeGenerator(dataSource, packageName); codeGenerator.setOutputDirectory(outputDir); // 添加表到待生成列表中 codeGenerator.addTable("t_user"); codeGenerator.addTable("t_order"); // 执行生成逻辑 codeGenerator.execute(); ``` #### 自定义模板 除了默认提供的模板外,还可以根据项目需求定制化模板文件。这些模板通常位于资源文件夹下的特定位置,并遵循一定的命名约定以便被识别加载。对于更复杂的场景,则可以通过继承`AbstractTemplateEngine`来自定义实现不同的渲染策略. #### 增强功能支持 值得一提的是,在保持原有MyBatis特性的同时,MyBatis-Flex还提供了诸如自动填充字段、乐观锁机制等一系列增强型功能的支持,进一步提升了开发效率与灵活性.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值