# mybatis-freemarker-generator **Repository Path**: yangmenglin/mybatis-freemarker-generator ## Basic Information - **Project Name**: mybatis-freemarker-generator - **Description**: 通过freemarker自动代码生成entity,mapper,xml,service - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-07-21 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: MyBatis, 代码生成 ## README # mybatis-freemarker-generator #### 介绍 - 通过freemarker自动代码生成entity,mapper,xml,service - 支持`swagger3`,`lombok` - 支持`mysql`,`sqlserver`数据库 - 支持`mybatis`,`mybatis-plus` - 支持实体继承类转换 - 支持导出表结构的Markdown与Word文件 #### 当前版本 1.0.2 #### 相关依赖包 ```xml com.microsoft.sqlserver mssql-jdbc 10.2.1.jre8 runtime mysql mysql-connector-java 8.0.33 runtime org.freemarker freemarker 2.3.32 org.apache.commons commons-lang3 3.12.0 ``` 项目结构 ``` mybatis-freemarker-generator ├─src └─main ├─java │ └─com │ └─yml │ └─mybatis │ └─gererator │ ├─config // 配置 │ ├─meta // 元数据 │ ├─service // 接口 │ └─util // 工具类 └─resources └─template // 模板文件 ``` #### 使用说明 **安装** 将代码拉至本地,使用maven本地打包,maven版本建议3.8+,jdk11+ **引入本依赖** ```xml com.yml mybatis-freemarker-generator ${lastVersion} ``` **代码生成** 详细配置可参照`config`目录下各个配置说明 以下为样例 ```java import com.yml.mybatis.gererator.constant.OrmType; import com.yml.mybatis.gererator.meta.DataSourceInfo; import com.yml.mybatis.gererator.util.YmlAutoGenerator; /** * mybaits-plus代码自动生成 * * @author YML * @since 2023-04-08 21:24 */ public class MyBatisPlusCodeGenerator { public static void generator(String moduleName,String parentPacket,String... tables) throws Exception { DataSourceInfo dataSource = new DataSourceInfo( "jdbc:sqlserver://localhost:1433;databaseName=tt;encrypt=false", "sa", "123456"); YmlAutoGenerator.create(dataSource) .globalConfig(builder -> { builder.javaPath("src/main/java") .mapperPath("src/main/java") .mapperXmlPath("src/main/resources") .basePackage(parentPacket) .author("杨") .modulePath(moduleName) .ormType(OrmType.MYBATIS_PLUS) .ignorePrefix("HM_") ; }) .entityConfig(builder -> { builder.entityPackage("entity") .tables(tables); }) .mapperConfig(builder -> { builder.mapperFormat("%sCommonMapper") .mapperXmlPackage("mapper") .mapperPackage("mapper"); }) .serviceConfig(builder -> { builder.servicePackage("service") .serviceImplPackage("service.impl") .serviceFormat("I%sCommonService") .serviceImplFormat("%sCommonServiceImpl"); }) .execute(); } public static void main(String[] args) throws Exception { generator("commons","com.yml.commons","HM_MemberCopy"); } } ``` **导出Markdown或Word** 以下为样例 ```java public static void main(String[] args) throws Exception { DataSourceInfo info = new DataSourceInfo( "jdbc:sqlserver://localhost:1433;databaseName=tt;encrypt=false", "sa", "123456"); ExportUtils.exportAllDbInfoToWord(info,null); ExportUtils.exportAllDbInfoToWord(info,null); } ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request