import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
import java.util.Arrays;
public class MybatisPlusCodeGenerator {
/** 作者. */
private static final String AUTHOR = "yzl";
/** 数据库 .*/
private static final String USERNAME = "dev_rw";
private static final String PASSWORD = "12345
";
private static final String DB_URL = "jdbc:mysql://dev-mysql-master.go.com:3306/monitor_base?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai" ;
private static final String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
/** 代码生成输出目录. */
private static final String OUTPUT_DIR = "./";
/** 生成的包名 .*/
private static final String PACKEGE_NAME = "com.monitor.manager";
/**
* 根据表名生成对应的实体类,repository,service,controller(都是单表)
* 注: repository.xml默认生成在mapper/xml下,需要手动移动到resource/mapper下
*/
@Test
public void generateCode() {
generateByTables(PACKEGE_NAME,"alarm_datasource");
}
private void generateByTables(String packageName, String... tableNames) {
GlobalConfig globalConfig = new GlobalConfig();//全局配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();//数据源配置
StrategyConfig strategyConfig = new StrategyConfig();//策略配置
PackageConfig packageConfig = new PackageConfig();//配置包名
TemplateConfig templateConfig = new TemplateConfig();// 配置模板
dataSourceConfig.setDbType(DbType.MYSQL)
.setDriverName(DRIVER_NAME)
.setUrl(DB_URL).setUsername(USERNAME)
.setPassword(PASSWORD);
strategyConfig.setCapitalMode(true)
.setNaming(NamingStrategy.underline_to_camel) //下划线转驼峰
.setEntityLombokModel(true)
.setInclude(tableNames) //要生成代码的表名(可以是多个,以String数组表示)
.setRestControllerStyle(false) //生成controller的注解为@RestController
.setTableFillList(Arrays.asList(
new TableFill("created_at", FieldFill.INSERT),
new TableFill("updated_at",FieldFill.INSERT_UPDATE)));
packageConfig.setParent(PACKEGE_NAME)
.setMapper("repository")
.setService("service.alarm")
.setController("controller")
.setEntity("model.entity");
globalConfig.setActiveRecord(false)
.setAuthor(AUTHOR)
.setOutputDir(OUTPUT_DIR+"/src/main/java")
.setFileOverride(false)
.setIdType(IdType.AUTO) //主键策略
.setServiceName("%sService")
.setBaseResultMap(true)
.setBaseColumnList(true);
// 配置自定义输出模板
// 指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig.setEntity("mybatis.plus.templates/entity.java");
// templateConfig.setService();
// templateConfig.setController();
templateConfig.setXml(null);
//templateConfig.setController("mybatis.plus.templates/controller.java");
//创建代码生成器
new AutoGenerator().setGlobalConfig(globalConfig)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.setTemplate(templateConfig)
.execute();
}
}
MybatisPlus代码生成器
于 2022-03-25 14:29:58 首次发布