Mybatis-plus-generator代码自动生成工具
添加必要依赖
<!-- 代码自动生成依赖 begin --> <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.0</version> </dependency> <!-- 代码自动生成依赖 end--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
实现代码
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; 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.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @Slf4j public class MyBatisPlusGenerator { public static void main(String[] args) { //1. 全局配置 GlobalConfig config = new GlobalConfig(); // 是否支持AR模式 config.setActiveRecord(true) // 作者 .setAuthor("wangwei") // 生成路径,最好使用绝对路径 //TODO TODO TODO TODO .setOutputDir("E:\\Dynamic") // 文件覆盖 .setFileOverride(true) // 主键策略 .setIdType(IdType.AUTO) .setDateType(DateType.ONLY_DATE) // 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的 .setServiceName("I%sService") //实体类结尾名称 .setEntityName("%sEntity") //生成基本的resultMap .setBaseResultMap(true) //不使用AR模式 .setActiveRecord(false) //生成基本的SQL片段 .setBaseColumnList(true); //2. 数据源配置 DataSourceConfig dsConfig = new DataSourceConfig(); // 设置数据库类型 dsConfig.setDbType(DbType.MYSQL) .setDriverName("com.mysql.jdbc.Driver") //TODO TODO TODO TODO .setUrl("jdbc:mysql://127.0.0.0:3306/metaverse_dev?useSSL=false") .setUsername("metaverse") .setPassword("metaverse"); //3. 策略配置globalConfiguration中 StrategyConfig stConfig = new StrategyConfig(); //全局大写命名 stConfig.setCapitalMode(true) // 数据库表映射到实体的命名策略 .setNaming(NamingStrategy.underline_to_camel) //使用lombok .setEntityLombokModel(true) //使用restcontroller注解 .setRestControllerStyle(true) // 生成的表, 支持多表一起生成,以数组形式填写 //TODO TODO TODO TODO 两个方式,直接写,或者使用命令行输入 .setInclude("tar_course_chapter_relationship"); //.setInclude(scanner("表名,多个英文逗号分割").split(",")); //4. 包名策略配置 PackageConfig pkConfig = new PackageConfig(); pkConfig.setParent("timing") .setMapper("mapper") .setService("service") .setController("controller") .setEntity("model") .setXml("mapper"); //5. 整合配置 AutoGenerator ag = new AutoGenerator(); ag.setGlobalConfig(config) .setDataSource(dsConfig) .setStrategy(stConfig) .setPackageInfo(pkConfig); //6. 执行操作 ag.execute(); System.out.println("======= Done 相关代码生成完毕 ========"); } }