import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.ConstVal; 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.TemplateConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class CodeGenerator { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig .setAuthor("generator@TaoJie") .setOpen(false) .setFileOverride(false) .setIdType(IdType.AUTO) .setBaseResultMap(true) .setEntityName("%sDO") .setServiceName("%sService"); mpg.setGlobalConfig(globalConfig); // 数据源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig // .setUrl("jdbc:mysql://192.168.1.235:3306/pms_test?allowPublicKeyRetrieval=true&useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai") .setUrl("jdbc:mysql://47.96.225.205:3306/pms_taojie?allowPublicKeyRetrieval=true&useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai") .setDriverName("com.mysql.cj.jdbc.Driver") .setUsername("root") // .setPassword("rootroot"); .setPassword("CloudRoam"); mpg.setDataSource(dataSourceConfig); // 包名配置 PackageConfig packageConfig = new PackageConfig(); packageConfig .setParent("com.cloudroam") .setPathInfo(getPathInfo()) .setEntity("model") .setController("controller.v1") .setXml("xml"); mpg.setPackageInfo(packageConfig); // 模板配置 TemplateConfig templateConfig = new TemplateConfig(); templateConfig .setEntity("/mpg/templates/entity.java") .setXml("/mpg/templates/mapper.xml") .setController("/mpg/templates/controller.java"); mpg.setTemplate(templateConfig); // 策略配置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig .setNaming(NamingStrategy.underline_to_camel) .setSuperEntityClass("com.cloudroam.model.BaseModel") // .setTablePrefix("") .setEntitySerialVersionUID(false) .setEntityLombokModel(true) .setRestControllerStyle(true) .setSuperEntityColumns("id", "create_time", "update_time", "delete_time") .setInclude(scanner("表名,多个英文逗号分割").split(",")) .setControllerMappingHyphenStyle(true); mpg.setStrategy(strategyConfig); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); } /** * 读取控制台内容 */ private static String scanner(String tip) { Scanner scanner = new Scanner(System.in); System.out.println("请输入" + tip + ":"); if (scanner.hasNext()) { String ipt = scanner.next(); if (StringUtils.isNotBlank(ipt)) { return ipt; } } throw new MybatisPlusException("请输入正确的" + tip + "!"); } private static Map getPathInfo() { Map pathInfo = new HashMap<>(); pathInfo.put(ConstVal.ENTITY_PATH, System.getProperty("user.dir") + "/src/main/java/com/cloudroam/model"); pathInfo.put(ConstVal.MAPPER_PATH, System.getProperty("user.dir") + "/src/main/java/com/cloudroam/mapper"); pathInfo.put(ConstVal.SERVICE_PATH, System.getProperty("user.dir") + "/src/main/java/com/cloudroam/service"); pathInfo.put(ConstVal.SERVICE_IMPL_PATH, System.getProperty("user.dir") + "/src/main/java/com/cloudroam/service/impl"); pathInfo.put(ConstVal.CONTROLLER_PATH, System.getProperty("user.dir") + "/src/main/java/com/cloudroam/controller/v1"); pathInfo.put(ConstVal.XML_PATH, System.getProperty("user.dir") + "/src/main/resources/mapper"); return pathInfo; } }