MyBatis-Plus代码生成器详解与实战

介绍

在软件开发过程中,为了提高开发效率和保持代码规范一致性,使用代码生成器是一个常见的选择。MyBatis-Plus提供了一个强大的代码生成器,能够根据数据库表结构生成对应的实体类、Mapper接口、Service接口等代码。本文将详细介绍如何配置和使用MyBatis-Plus代码生成器,并通过实际示例演示整个过程。

项目配置

首先,我们需要配置代码生成器的一些基本信息,包括输出目录、作者信息、数据源配置等。下面是一个简单的配置示例:

// CodeGenerator.java

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;

/**
 * MyBatis-Plus代码生成器配置
 */
public class CodeGenerator {
    @Test
    public void run() {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        gc.setAuthor("hhh");
        gc.setOpen(false);
        gc.setServiceName("%sService");
        gc.setIdType(IdType.ASSIGN_ID);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://192.168.1.162:13306/hszw_oa?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("Mysql.123456");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.fjsst.oa.module.supv");
        pc.setController("controller");
        pc.setEntity("domain");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude("flow_flow_node");
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setTablePrefix("flow_");
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);

        // 执行生成
        mpg.execute();
    }
}

代码复制就能用

配置说明

全局配置(GlobalConfig)

  • outputDir:代码生成的输出目录。
  • author:作者名称。
  • serviceName:Service接口的名称。
  • idType:主键生成策略。
  • open:生成后是否打开文件夹。
  • ...

数据源配置(DataSourceConfig)

  • url:数据库连接地址。
  • driverName:数据库驱动。
  • username:数据库用户名。
  • password:数据库密码。
  • ...

包配置(PackageConfig)

  • parent:项目的基础包名。
  • controller:Controller包名。
  • entity:实体类包名。
  • service:Service包名。
  • mapper:Mapper包名。
  • ...

策略配置(StrategyConfig)

  • include:需要生成的表。
  • naming:数据库表映射到实体的命名策略。
  • tablePrefix:生成实体时去掉的表前缀。
  • entityLombokModel:是否使用Lombok。
  • restControllerStyle:是否生成RestController。
  • ...

执行生成

配置完成后,执行 run 方法即可生成代码。执行完毕后,你将在指定的输出目录下看到生成的实体类、Mapper接口、Service接口等代码文件。

// 在 CodeGenerator.java 文件中
public class CodeGenerator {
    @Test
    public void run() {
        // ...(省略其他配置)

        // 执行生成
        mpg.execute();
    }
}

以上配置仅为简单示例,具体根据项目实际需求进行配置。

总结

MyBatis-Plus代码生成器是一个强大的工具,可以大大提高项目开发效率。通过本文的介绍,你已经对如何配置和使用代码生成器有了一定的了解。在实际项目中,根据需求合理配置生成规则,可以更好地适应项目结构和规范。

希望本文对你有所帮助,欢迎留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值