1.mybatis-plus-generator 3.5.1 以下版本
1.1.pom,xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
1.2.自动生成器
public class MPCodeGenerator {
private static final String MP_CONFIG_AUTHOR = "quinhua";
private static final String MP_CONFIG_MYSQL_NAME = "mybatis_plus";
private static final String MP_CONFIG_MYSQL_DRIVERNAME = ".cj";
private static final String MP_CONFIG_MYSQL_USERNAME = "root";
private static final String MP_CONFIG_MYSQL_PASSWORD = "root";
private static final String MP_CONFIG_CLASS_PARENT_NAME = "com.qh";
private static final String MP_CONFIG_TABLE_PREFIX = "mp_";
private static final String MP_CONFIG_LOGICDELETEFILELDNAME = "is_deleted";
public static void main(String[] args) {
GlobalConfig gConfig = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gConfig.setOutputDir(projectPath + "/src/main/java")
.setFileOverride(true)
.setOpen(false)
.setAuthor(MP_CONFIG_AUTHOR)
.setIdType(IdType.AUTO)
.setBaseResultMap(true)
.setBaseColumnList(true)
.setServiceName("%sService")
.setDateType(DateType.ONLY_DATE);
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig
.setUrl("jdbc:mysql://localhost:3306/" + MP_CONFIG_MYSQL_NAME + "?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8")
.setDriverName("com.mysql" + MP_CONFIG_MYSQL_DRIVERNAME + ".jdbc.Driver")
.setUsername(MP_CONFIG_MYSQL_USERNAME)
.setPassword(MP_CONFIG_MYSQL_PASSWORD);
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent(MP_CONFIG_CLASS_PARENT_NAME)
.setMapper("mapper")
.setXml("mapper.xml")
.setEntity("pojo")
.setService("service")
.setServiceImpl("service.impl")
.setController("controller");
TableFill gmt_create = new TableFill("create_time", FieldFill.INSERT);
TableFill gmt_modified = new TableFill("update_time", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmt_create);
tableFills.add(gmt_modified);
StrategyConfig stConfig = new StrategyConfig();
stConfig.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setRestControllerStyle(true)
.setControllerMappingHyphenStyle(true)
.setTableFillList(tableFills)
.setLogicDeleteFieldName(MP_CONFIG_LOGICDELETEFILELDNAME)
.setVersionFieldName("version")
.setRestControllerStyle(true)
.setTablePrefix(MP_CONFIG_TABLE_PREFIX)
.setInclude(scanner("表名 -【多个表名请用英文逗号分割】").split(","));
AutoGenerator mpg = new AutoGenerator();
mpg.setGlobalConfig(gConfig)
.setDataSource(dsConfig)
.setPackageInfo(pkConfig)
.setStrategy(stConfig);
mpg.execute();
}
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + " :");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
}
1.3.修改
生成代码后需要在主启动类上添加`@MapperScan("mapper包全路径")`
或者在每个`mapper接口`中添加`@Mapper`注解,否则测试报错