mybatisPlus 代码生成器

发布时间 2023-08-16 22:53:03作者: C紫枫

代码生成器旧版-3.5.1版本之前


public class CodeGeneration {

	public static void main(String[] args) {
		CodeGeneration codeGeneration = new CodeGeneration();
		codeGeneration.execute();
	}

	public void execute() {

		AutoGenerator mpg = new AutoGenerator();
		// 全局配置
		GlobalConfig gc = new GlobalConfig();
		String projectPath = System.getProperty("user.dir");
		gc.setOutputDir(projectPath + "/src/main/java");
		gc.setFileOverride(true);
		gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
		gc.setEnableCache(false);// XML 二级缓存
		gc.setBaseResultMap(true);// XML ResultMap
		gc.setBaseColumnList(false);// XML columList
		gc.setAuthor("czf");// 作者

		// 自定义文件命名,注意 %s 会自动填充表实体属性!
		gc.setControllerName("%sController");
		gc.setServiceName("%sService");
		gc.setServiceImplName("%sServiceImpl");
		gc.setMapperName("%sDao");
		gc.setXmlName("%sMapper");
		mpg.setGlobalConfig(gc);

		// 数据源配置
		DataSourceConfig dsc = new DataSourceConfig();
		dsc.setDbType(DbType.MYSQL);
		dsc.setDriverName("com.mysql.cj.jdbc.Driver");
		dsc.setUsername("root");
		dsc.setPassword("SCIIscii123");
		dsc.setUrl(
				"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false");
		mpg.setDataSource(dsc);

		// 策略配置
		StrategyConfig strategy = new StrategyConfig();
		strategy.setTablePrefix(new String[] { "" });// 此处可以修改为您的表前缀
		strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
		// 需要生成的表
		strategy.setInclude(new String[] { "ecology"});

		strategy.setSuperServiceClass(null);
		strategy.setSuperServiceImplClass(null);
		strategy.setSuperMapperClass(null);

		mpg.setStrategy(strategy);

		// 包配置
		PackageConfig pc = new PackageConfig();
		pc.setParent("com.sinocarbon.infinity.user");
		pc.setController("controller");
		pc.setService("service");
		// pc.setServiceImpl("serviceImpl");
		pc.setMapper("dao");
		pc.setEntity("pojo");
		pc.setXml("mapper");
		mpg.setPackageInfo(pc);

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

代码生成器新-3.5.1版本及以上

依赖

      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- Velocity 模板引擎 -->
        <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-engine-core -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

使用

public class AutoGenerator {
    private static String url ="jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowMultiQueries=true";
    public static void main(String[] args) {
        String projectPath = System.getProperty("user.dir");
        FastAutoGenerator.create(url, "root", "root")
                //全局配置
                .globalConfig(builder -> {
                    // 设置作者
                    builder.author("czf")
                            // 指定输出目录
                            .outputDir(projectPath + "/src/main/java")
                            //覆盖已生成文件
                            .fileOverride();
                })
                // 包配置
                .packageConfig(builder -> {
                    // 设置父包名
                    builder.parent("com.example.mybatisplus");
                    // 设置父包模块名
                    builder.moduleName("oa");
                    builder.service("service");
                    builder.entity("pojo");
                    builder.controller("controller");
                    builder.mapper("dao");
                    builder.xml("mapper");
                })
                // 策略配置
                .strategyConfig(builder ->
                        // 表名
                        builder.addInclude("simple","user")
                                // 自定义设置service层的文件名
                                .serviceBuilder().formatServiceFileName("%sService")
                                .formatServiceImplFileName("%sServiceImpl")
                )

                // 执行
                .execute();
    }
}