pom.xml引入依赖
<!-- 代码生成 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.0</version>
<scope>test</scope>
</dependency>
<!-- 代码生成 -->
<!-- mybatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.4.3.1</version>
</dependency>
<!-- mybatisPlus -->
这个类放到test目录下,执行即可,如果没有junit,自行引入
package cn.goldencis.gdcontainer.microservice;
import com.baomidou.mybatisplus.generator.SimpleAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* 代码生成器
* @author gaokuo
*/
public class DaiMa {
/**
* 代码生成到什么位置,换句话说,springboot的根包
*/
String basePackage = "cn.asdsd.dsadsa.microservice.";
/**
* 数据库相关
*/
String databaseUrl = "jdbc:mysql://10.10.16.**:3306/**?generateSimpleParameterMetadata=true&characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai";
String databaseUsername = "root";
String databasePassword = "---";
/**
* 您的大名
*/
String author = "gaokuo";
@Test
public void main() {
String projectPath = System.getProperty("user.dir");
String javaPath = projectPath + File.separator + "src/main/java/" + basePackage.replaceAll("\\.","/");
new SimpleAutoGenerator() {
/**
* 全局配置 Builder
*/
@Override
public IConfigBuilder<GlobalConfig> globalConfigBuilder() {
return new GlobalConfig.Builder()
.openDir(false)
.outputDir(projectPath + File.separator + "src/main/java")
.fileOverride()
.enableSwagger()
.author(author)
.dateType(DateType.TIME_PACK)
.commentDate("yyyy-MM-dd");
}
/**
* 数据源配置 Builder
*/
@Override
public IConfigBuilder<DataSourceConfig> dataSourceConfigBuilder() {
return new DataSourceConfig.Builder(databaseUrl,
databaseUsername, databasePassword);
}
/**
* 代码生成策略配置 Builder
*/
@Override
public IConfigBuilder<StrategyConfig> strategyConfigBuilder() {
return new StrategyConfig.Builder().addInclude(scannerNext("\n请输入表名多个英文逗号分隔:").split(","))
.enableCapitalMode()
.enableSkipView()
.disableSqlFilter()
.entityBuilder()
//.superClass(BaseEntity.class)
.enableSerialVersionUID()
.enableChainModel()
.enableLombok()
.naming(NamingStrategy.underline_to_camel)
.mapperBuilder()
.formatMapperFileName("%sMapper")
.formatXmlFileName("%sMapper")
.enableBaseResultMap()
.serviceBuilder()
//.superServiceClass(BaseService.class)
//.superServiceImplClass(BaseServiceImpl.class)
.formatServiceFileName("I%sService")
.formatServiceImplFileName("%sServiceImpl")
.controllerBuilder()
.formatFileName("%sController")
.enableRestStyle()
.enableHyphenStyle();
}
/**
* 生成文件包名配置 Builder
*/
@Override
public IConfigBuilder<PackageConfig> packageConfigBuilder() {
String moduleName = scannerNext("\n请输入项目模块名:");
String modulePath = javaPath + moduleName + File.separator;
Map<String,String> pathIndo = new HashMap<>();
pathIndo.put(ConstVal.XML_PATH, projectPath + File.separator + "src/main/resources/mappers/" + moduleName);
pathIndo.put(ConstVal.ENTITY_PATH, modulePath + "entity");
pathIndo.put(ConstVal.SERVICE_PATH, modulePath + "service");
pathIndo.put(ConstVal.SERVICE_IMPL_PATH, modulePath + "service/impl");
pathIndo.put(ConstVal.MAPPER_PATH, modulePath + "mapper");
pathIndo.put(ConstVal.CONTROLLER_PATH, modulePath + "controller");
return new PackageConfig.Builder()
.pathInfo(pathIndo)
.parent(basePackage + moduleName);
/*.entity("model.entity")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.controller("controller")
.xml(projectPath + File.separator + "src/main/resources/mappers");*/
}
@Override
public IConfigBuilder<InjectionConfig> injectionConfigBuilder() {
return super.injectionConfigBuilder();
}
}.execute();
}
}
如果用的是idea,test下控制台无法输入,customer vm options加上:-Deditable.java.test.console=true