pom文件
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.1.8.RELEASE</version>
</dependency>
</dependencies>
public class MysqlGenerator {
public static void Generator(String[] tableName) {
String projectPath = System.getProperty("user.dir");
//============================== 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(projectPath + "/src/main/java")
.setActiveRecord(true)// 是否支持 AR
.setAuthor("xxx") //设置作者名字
.setFileOverride(true) //文件覆盖(全新文件)
.setIdType(IdType.AUTO)//主键策略
.setBaseResultMap(true) //SQL 映射文件
.setBaseColumnList(true)//SQL 片段
.setOpen(false);
//============================== 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MARIADB)
.setUrl("jdbc:mysql://")
.setDriverName("com.mysql.jdbc.Driver")
.setUsername("")
//.setSchemaName("public")
.setPassword("");
//==============================包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.xxxx")//配置父包路径
.setModuleName("")//配置业务包路径
.setMapper("mapper")
.setEntity("entity")
.setService("service")
.setController("controller");
//.setServiceImpl("service.impl"); 会自动生成 impl,可以不设定
//============================== 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
//============================== 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel)//设置命名规则 underline_to_camel 底线变驼峰
.setColumnNaming(NamingStrategy.underline_to_camel)//设置设置列命名 underline_to_camel 底线变驼峰
//.setSuperEntityClass("com.xx")//设置继承类
//.setSuperControllerClass("com.xxx")//设置继承类
.setEntityLombokModel(true)//是否加入lombok
.setInclude(tableName)//设置表名
//.setSuperEntityColumns("id") //设置超级超级列
.setControllerMappingHyphenStyle(true)//设置controller映射联字符
.setTablePrefix(pc.getModuleName() + "_");//表的前缀
//============================== 生成配置
AutoGenerator mpg = new AutoGenerator();
mpg.setCfg(cfg)
.setTemplate(new TemplateConfig().setXml(null))
.setGlobalConfig(gc)
.setDataSource(dsc)
.setPackageInfo(pc)
.setStrategy(strategy)
// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!
.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
public static void main(String[] args) {
Generator(new String[]{"users"});
}
}
版权声明:本文为g3230863原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。