MyBatis Generator
Maven插件依赖
实际需求修改请看 http://mybatis.org/generator/running/runningWithMaven.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.0</version> <dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> </dependencies> </plugin> </plugins> </build>
|
逆向工程的配置文件
文件名必须是:generatorConfig.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3Simple"> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="123456"> </jdbcConnection> <javaModelGenerator targetPackage="com.atguigu.mybatis.pojo" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="com.atguigu.mybatis.mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.mapper" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table tableName="t_emp" domainObjectName="Emp"/> <table tableName="t_dept" domainObjectName="Dept"/> </context> </generatorConfiguration>
|
运行命令: mvn mybatis-generator:generate
Mybaits-Plus
可以用idea MybaitsX插件
代码生成器(新,3.5.1版本及以上)
参考连接 https://baomidou.com/pages/981406/
Maven依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.3</version> </dependency>
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
|
MyBatis Plus Generator
支持的模板引擎有Velocity
、Beetl
、FreeMarker
,按需导入
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| package com.huajframe.security.util;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.Arrays; import java.util.Collections; import java.util.List;
public class CodeGenerator { private final static String URL = "jdbc:mysql://localhost:3306/security_example?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"; private final static String USER_NAME = "root"; private final static String PASSWORD = "******"; private final static String OUT_PUT_DIR = "F:\\java_project\\security-example\\src\\main"; private final static String JAVA_PATH = OUT_PUT_DIR + "\\" + "java"; private final static String MAPPER_PATH = OUT_PUT_DIR + "\\" + "resources\\mapper";
public static void main(String[] args) { FastAutoGenerator.create(URL, USER_NAME, PASSWORD) .globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称?")).fileOverride() .outputDir(JAVA_PATH) .dateType(DateType.ONLY_DATE) .commentDate("yyyy-MM-dd") .fileOverride() .disableOpenDir())
.packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入包名?")) .moduleName("security") .entity("entity") .service("service") .serviceImpl("service.impl") .mapper("mapper") .xml("mapper.xml") .controller("controller") .pathInfo(Collections.singletonMap(OutputFile.mapperXml, MAPPER_PATH)) )
.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))) .addTablePrefix("t_") .controllerBuilder() .enableRestStyle() .serviceBuilder() .formatServiceFileName("I%sService") .formatServiceImplFileName("%sServiceImp") .entityBuilder() .enableLombok() .enableRemoveIsPrefix() .idType(IdType.AUTO) .addTableFills( new Column("create_time", FieldFill.INSERT) ) .mapperBuilder() .enableBaseResultMap() .enableBaseColumnList() .build())
.execute();
}
protected static List<String> getTables(String tables) { return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(",")); } }
|