MyBatisPlus-快速开发

MyBatisPlus-快速开发

代码生成器

AutoGenerator是MyBatisPlus的代码生成器,可以快速生成Entity、Mapper、MapperXML、Service、Controller等各个模块的代码,极大的提升开发效率。

代码生成器的使用

  1. 导入坐标

    <!--代码生成器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.4.1</version>
    </dependency>
    <!--velocity模板引擎-->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.3</version>
    </dependency>
    
  2. 核心代码

    public class Generator {
        public static void main(String[] args) {
            AutoGenerator autoGenerator = new AutoGenerator();
            DataSourceConfig dataSource = new DataSourceConfig();
    
    		// 数据源的配置
            dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC");
            dataSource.setUsername("root");
            dataSource.setPassword("1234");
            autoGenerator.setDataSource(dataSource);
            autoGenerator.execute();
    
            // 设置全局配置
            GlobalConfig globalConfig = new GlobalConfig();
            globalConfig.setOutputDir(System.getProperty("user.dir") + "/mybatisplus_04_generator/src/main/java");  // 设置代码的生成路径
            globalConfig.setOpen(false);    // 设置生成完毕后是否打开代码所在的目录
            globalConfig.setAuthor("Charley");  // 设置作者
            globalConfig.setFileOverride(true); // 设置是否覆盖原始生成的文件
            globalConfig.setMapperName("%sDao"); // 设置数据层接口名,%s为占位符,指代模块名称
            globalConfig.setIdType(IdType.ASSIGN_ID);   // 设置id生成策略
            autoGenerator.setGlobalConfig(globalConfig);
    
            // 设置包名相关配置
            PackageConfig packageInfo = new PackageConfig();
            packageInfo.setParent("com.charley");   // 设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径
            packageInfo.setEntity("domain");    // 设置实体类包名
            packageInfo.setMapper("dao");   // 设置数据层包名
            autoGenerator.setPackageInfo(packageInfo);
    
            // 策略设置
            StrategyConfig strategyConfig = new StrategyConfig();
            strategyConfig.setInclude("tbl_user");  //设置当前参与生成的表名,参数为可变参数
            strategyConfig.setTablePrefix("tbl_");  // 设置当前数据库表的前缀名称,模块名 = 数据库表名 - 前缀名 例如: User = tbl_user - tbl_
            strategyConfig.setRestControllerStyle(true);    // 设置是否启用Rest风格
            strategyConfig.setVersionFieldName("version"); // 设置乐观锁字段名
            strategyConfig.setLogicDeleteFieldName("deleted");  // 设置逻辑删除字段名
            strategyConfig.setEntityLombokModel(true);      // 设置是否启用lombok
            autoGenerator.setStrategy(strategyConfig);
    
            // 2. 执行生成操作
            autoGenerator.execute();
        }
    }