mybatisplus代码生成器3.5.2
生活随笔
收集整理的這篇文章主要介紹了
mybatisplus代码生成器3.5.2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mybatis-plus最新代碼生成器(3.5.1+)的使用
mybatis-plus 代碼生成器(3.5.2)
@Autowiredprivate CodeGeneratorMapper codeGeneratorMapper;//ip地址private String DB_URL = "";//用戶名private String DB_USERNAME = "";//密碼private String DB_PASSWD = "";//作者private String DB_AUTHOR = "";//表集合private String DB_TABLE_LIST = "";//數據連接信息private DataSourceConfig dataSourceConfig() {return new DataSourceConfig().setDbType(DbType.MYSQL).setUrl(DB_URL).setUsername(DB_USERNAME).setPassword(DB_PASSWD).setDriverName(GeneratorConfig.DRIVER);}// 配置private GlobalConfig globalConfig() {return new GlobalConfig().setAuthor(DB_AUTHOR).setOutputDir(GeneratorConfig.outputDir).setFileOverride(true) // 是否覆蓋已有文件.setOpen(false) // 是否打開輸出目錄.setDateType(DateType.ONLY_DATE) // 時間采用java 8,(操作工具類:JavaLib => DateTimeUtils).setEnableCache(false)// XML 二級緩存.setBaseResultMap(false)// XML ResultMap.setBaseColumnList(false)// XML columList.setKotlin(false) //是否生成 kotlin 代碼.setMapperName(GeneratorConfig.FILE_NAME_DAO) //自定義文件命名,注意 %s 會自動填充表實體屬性!.setXmlName(GeneratorConfig.FILE_NAME_XML).setServiceName(GeneratorConfig.FILE_NAME_SERVICE).setServiceImplName(GeneratorConfig.FILE_NAME_SERVICE_IMPL).setControllerName(GeneratorConfig.FILE_NAME_CONTROLLER).setSwagger2(GeneratorConfig.SWAGGER_SUPPORT);}//實體類配置private StrategyConfig strategyConfig() {return new StrategyConfig().setChainModel(true) // 【實體】是否為構建者模型(默認 false).setNaming(NamingStrategy.underline_to_camel).setColumnNaming(NamingStrategy.underline_to_camel)// .setSuperEntityClass(BaseEntity.class).setEntityLombokModel(true).setRestControllerStyle(true).setInclude(DB_TABLE_LIST.split(",")).setControllerMappingHyphenStyle(false).setEntityTableFieldAnnotationEnable(true) //是否生成實體時,生成字段注解,包括@TableName("");}// 包信息配置private PackageConfig packageConfig() {return new PackageConfig()// .setModuleName(scanner("ss")).setParent(GeneratorConfig.PACKAGE_PARENT)// 如果是單體項目請注釋掉 .setModuleName(scanner("模塊名"))即可,把下面注釋取消.setController(GeneratorConfig.PACKAGE_NAME_CONTROLLER).setEntity(GeneratorConfig.PACKAGE_NAME_MODEL).setMapper(GeneratorConfig.PACKAGE_NAME_DAO).setService(GeneratorConfig.PACKAGE_NAME_SERVICE).setServiceImpl(GeneratorConfig.PACKAGE_NAME_SERVICE_IMPL);}private InjectionConfig injectionConfig() {InjectionConfig injectionConfig = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};String templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocity// String templatePath = "/templates/mapper.xml.vm";// 自定義輸出配置List<FileOutConfig> focList = new ArrayList<>();// 自定義配置會被優先輸出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定義輸出文件名 , 如果你 Entity 設置了前后綴、此處注意 xml 的名稱會跟著發生變化!!return GeneratorConfig.projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});injectionConfig.setFileOutConfigList(focList);return injectionConfig;}private TemplateConfig templateConfig() {TemplateConfig templateConfig = new TemplateConfig();//配置自定義輸出模板,指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據使用的模板引擎自動識別templateConfig.setController("templates/controllerGenerator.java");templateConfig.setServiceImpl("templates/serviceImplGenerator.java");templateConfig.setMapper("templates/mapperGenerator.java");templateConfig.setXml(null);return templateConfig;}// 獲取模板引擎private AbstractTemplateEngine getTemplateEngine() {String templateEngine = GeneratorConfig.TEMPLATE_ENGINE;switch (templateEngine) {case "velocity":return new VelocityTemplateEngine();case "freemarker":return new FreemarkerTemplateEngine();case "beetl":return new BeetlTemplateEngine();default:return new VelocityTemplateEngine();}}// 執行器public Boolean execute(CodeGeneratorResult codeGeneratorResult) {//執行生成代碼之前,先初始化數據庫信息initMsg(codeGeneratorResult);GlobalConfig globalConfig = globalConfig();DataSourceConfig dataSourceConfig = dataSourceConfig();PackageConfig packageConfig = packageConfig();StrategyConfig strategyConfig = strategyConfig();InjectionConfig injectionConfig = injectionConfig();AbstractTemplateEngine templateEngine = getTemplateEngine();new AutoGenerator().setGlobalConfig(globalConfig).setDataSource(dataSourceConfig).setStrategy(strategyConfig).setPackageInfo(packageConfig).setTemplateEngine(templateEngine).setCfg(injectionConfig).setTemplate(templateConfig()).execute();//更新數據庫連接LambdaUpdateWrapper<CodeGenerator> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();lambdaUpdateWrapper.eq(CodeGenerator::getId, 1).set(CodeGenerator::getDbName, codeGeneratorResult.getDbName()).set(CodeGenerator::getDbUrl, IpUtils.obtainIp(codeGeneratorResult.getDbUrl())).set(CodeGenerator::getTableName, codeGeneratorResult.getTableName()).set(CodeGenerator::getUserName, codeGeneratorResult.getUserName()).set(CodeGenerator::getPassword, codeGeneratorResult.getPassword()).set(CodeGenerator::getAuthor, codeGeneratorResult.getAuthor());codeGeneratorMapper.update(null, lambdaUpdateWrapper);return true;}//執行生成代碼之前,先初始化數據庫信息public void initMsg(CodeGeneratorResult codeGeneratorResult) {this.DB_URL = codeGeneratorResult.getDbUrl();this.DB_USERNAME = codeGeneratorResult.getUserName();this.DB_PASSWD = codeGeneratorResult.getPassword();this.DB_AUTHOR = codeGeneratorResult.getAuthor();this.DB_TABLE_LIST = codeGeneratorResult.getTableName();}總結
以上是生活随笔為你收集整理的mybatisplus代码生成器3.5.2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JFrog Artifactory 7.
- 下一篇: SpringBoot2 整合 AXIS2