# mybatisPlus-generate **Repository Path**: binsc/mybatisPlus-generate ## Basic Information - **Project Name**: mybatisPlus-generate - **Description**: 代码生成工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-14 - **Last Updated**: 2022-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: MyBatis ## README # mybatisPlus-generate #### 介绍 代码生成工具 #### 软件架构 mybatisPlus代码生成+swagger接口文档 #### 文件说明 ``` 1.common包:通用类 BaseModel:实体类的父类 R: 返回数据类 ResultEnum: 返回类的常见状态码 2. config包:配置信息 3. controller、entity、mapper、service、mapper、service、resourses\mappe\xxx.xml 为生成模块 4、resoueces\templates\:自定义生成类的模板 ``` #### 使用说明 1. MpGenerator为代码器生成启动类 2. 配合数据库信息及需要生成的表 3. 模块默认生成当前目录 4. 配置swagger(配置扫描controller包和接口返回url) 5. 启动项目 6. 查看接口文档(http://${host}:${port}/doc.html) #### 核心生成代码: ``` public static void generate(String outputDir, String[] tableNames, String url, String userName, String password, String parentPackage, String prefixTable) { // =============== 全局配置 ================== GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(outputDir) .setActiveRecord(true) // 是否支持 AR, 实体类只需继承 Model 类即可进行强大的 CRUD 操作 .setAuthor("binscc") // 设置作者名字 .setFileOverride(true) // 文件覆盖(全新文件) .setIdType(IdType.AUTO) // 主键策略 .setBaseResultMap(true) // SQL 映射文件 .setBaseColumnList(true) // SQL 片段 .setServiceName("%sService") // service的名字 .setMapperName("%sMapper") .setOpen(false); // ================= 数据源配置 =============== DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL) .setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUrl(url) .setUsername(userName) .setPassword(password); // ================= 包配置 =================== PackageConfig pc = new PackageConfig(); pc.setParent(parentPackage) // 配置父包路径 .setMapper("mapper") .setEntity("entity") .setService("service") //.setServiceImpl("service.impl"); // 会自动生成 impl,可以不设定 .setController("controller"); // ================== 自定义配置 ================= InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; List focList = new ArrayList<>(); // 调整 xml 生成目录演示 focList.add(new FileOutConfig("/templates/mapper.xml.ftl") { @Override public String outputFile(TableInfo tableInfo) { // 自定义输入文件名称 return System.getProperty("user.dir") + "/src/main/resources/mapper/" +tableInfo.getEntityName()+ StringPool.DOT_XML; } }); cfg.setFileOutConfigList(focList); // =================== 策略配置 ================== StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel) // 表名命名: underline_to_camel 底线变驼峰 .setColumnNaming(NamingStrategy.underline_to_camel) // 字段命名: underline_to_camel 底线变驼峰 .setInclude(tableNames) // 需要生成的 表名 //.setCapitalMode(true) // 全局大写命名 ORACLE 注意 .setTablePrefix(prefixTable) // 去掉 表的前缀 // .setFieldPrefix(pc.getModuleName() + "_") // 去掉字段前缀 // .setSuperEntityClass("com.maoxs.pojo") // 继承类 // .setSuperControllerClass("com.maoxs.controller") // 继承类 // .setSuperEntityColumns("id") // 设置超级超级列 .setEntityLombokModel(true) //是否加入lombok .setLogicDeleteFieldName("deleted") // 设置逻辑删除字段(deleted) .setControllerMappingHyphenStyle(true); // 设置controller映射联字符 // ================== 自定义模板配置: 默认配置位置 mybatis-plus/src/main/resources/templates ====================== // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称 TemplateConfig tc = new TemplateConfig(); tc.setXml(null) // 设置生成xml的模板 .setEntity("/templates/entityPlus.java") // 设置生成entity的模板 .setMapper("/templates/mapper.java") // 设置生成mapper的模板 .setController("/templates/controller.java") // 设置生成service的模板 .setService("/templates/service.java") // 设置生成serviceImpl的模板 .setServiceImpl("/templates/serviceImpl.java"); // 设置生成controller的模板 // ==================== 生成配置 =================== AutoGenerator mpg = new AutoGenerator(); mpg.setCfg(cfg) .setTemplate(tc) .setGlobalConfig(gc) .setDataSource(dsc) .setPackageInfo(pc) .setStrategy(strategy) .setTemplateEngine(new FreemarkerTemplateEngine()); // 选择 freemarker引擎,注意 pom 依赖必须有! mpg.execute(); } ``` ### 演示图片 ![Image text](https://gitee.com/binsc/mybatisPlus-generate/raw/master/assets/p1.png) ![Image text](https://gitee.com/binsc/mybatisPlus-generate/raw/master/assets/p2.png)