测试
@Slf4j
public class MyBatisPlusGenerator {
static String dbName= "order_center";
static String packageParentName = "com.chinared.api.order";
static StringBuilder tableName = new StringBuilder("xb_order_service_multiple");
public static DataSourceConfig dataSource = new DataSourceConfig()
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://192.168.0.200:3306/"+dbName+"?characterEncoding=utf8&useInformationSchema=true")
.setUsername("root")
.setPassword("123456");
@SneakyThrows
public static void main(String[] args) {
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setDataSource(dataSource);
Connection connection = DriverManager.getConnection(dataSource.getUrl(),dataSource.getUsername(), dataSource.getPassword());
List<String> tables = new ArrayList<>();
String query = "select table_name From information_schema.tables where table_schema = "+"'"+dbName+"'";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()){
String tableName = resultSet.getString("table_name");
tables.add(tableName);
}
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setServiceName("%sService");
globalConfig.setOutputDir(System.getProperty("user.dir")+"/xb-parent/chinared-business");
globalConfig.setOpen(false);
globalConfig.setAuthor("zevin");
globalConfig.setFileOverride(true);
globalConfig.setMapperName("%sMapper");
globalConfig.setIdType(IdType.AUTO);
globalConfig.setSwagger2(true);
autoGenerator.setGlobalConfig(globalConfig);
PackageConfig packageInfo = new PackageConfig();
packageInfo.setParent(packageParentName);
packageInfo.setEntity("entity");
packageInfo.setXml("mapper");
packageInfo.setMapper("dao");
autoGenerator.setPackageInfo(packageInfo);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNameConvert(new INameConvert() {
@Override
public String entityNameConvert(TableInfo tableInfo) {
log.info("tableInfo:{}-getName",tableInfo.getName());
log.info("tableInfo:{}-getEntityName",tableInfo.getEntityName());
log.info("tableInfo:{}-getFieldNames",tableInfo.getFieldNames());
log.info("tableInfo:{}-getControllerName",tableInfo.getControllerName());
String tableName = StrUtil.toCamelCase(tableInfo.getName());
if (tableName.contains("xb")){
tableName = tableName.substring(2,tableName.length());
}else if (tableInfo.getName().contains("t_")||tableInfo.getName().contains("c_")){
tableName = tableName.substring(1,tableName.length());
}
return tableName;
}
@Override
public String propertyNameConvert(TableField field) {
log.info("field:{}-getName",field.getName());
log.info("field:{}-getColumnName",field.getColumnName());
log.info("field:{}-getAnnotationColumnName",field.getAnnotationColumnName());
return StrUtil.toCamelCase(field.getName());
}
});
String[] include = tables.toArray(new String[tables.size()]);
if (StringUtils.isNotBlank(tableName)){
include=tableName.toString().split(",");
}
strategyConfig.setInclude(include);
strategyConfig.setTablePrefix("tbl_");
strategyConfig.setRestControllerStyle(true);
strategyConfig.setVersionFieldName("version");
strategyConfig.setLogicDeleteFieldName("deleted");
strategyConfig.setEntityLombokModel(true);
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
}
}