Skip to content

Commit b00626f

Browse files
committed
update > optimize CodeGenerator,simplify project config.
1 parent 78a4345 commit b00626f

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/main/java/com/company/project/core/ProjectConstant.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@
44
* 项目常量
55
*/
66
public final class ProjectConstant {
7-
public static final String BASE_PACKAGE = "com.company.project";//项目基础包名称,根据自己的公司项目修改
8-
public static final String MAPPER_PACKAGE = BASE_PACKAGE + ".dao";//Mapper所在包
7+
public static final String BASE_PACKAGE = "com.company.project";//项目基础包名称,根据自己公司的项目修改
8+
99
public static final String MODEL_PACKAGE = BASE_PACKAGE + ".model";//Model所在包
10+
public static final String MAPPER_PACKAGE = BASE_PACKAGE + ".dao";//Mapper所在包
11+
public static final String SERVICE_PACKAGE = BASE_PACKAGE + ".service";//Service所在包
12+
public static final String SERVICE_IMPL_PACKAGE = SERVICE_PACKAGE + ".impl";//ServiceImpl所在包
13+
public static final String CONTROLLER_PACKAGE = BASE_PACKAGE + ".web";//Controller所在包
14+
1015
public static final String MAPPER_INTERFACE_REFERENCE = BASE_PACKAGE + ".core.Mapper";//Mapper插件基础接口的完全限定名
1116
}

src/test/java/CodeGenerator.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import com.company.project.core.ProjectConstant;
21
import freemarker.template.TemplateExceptionHandler;
32
import org.mybatis.generator.api.MyBatisGenerator;
43
import org.mybatis.generator.config.*;
@@ -10,6 +9,8 @@
109
import java.text.SimpleDateFormat;
1110
import java.util.*;
1211

12+
import static com.company.project.core.ProjectConstant.*;
13+
1314
/**
1415
* 代码生成器,根据数据表名称生成对应的Model、Mapper、Service、Controller简化开发。
1516
*/
@@ -26,10 +27,9 @@ public class CodeGenerator {
2627
private static final String JAVA_PATH = "\\src\\main\\java"; //java文件路径
2728
private static final String RESOURCES_PATH = "\\src\\main\\resources";//资源文件路径
2829

29-
private static final String BASE_PACKAGE_PATH = "\\com\\company\\project";//项目基础包路径
30-
private static final String PACKAGE_PATH_SERVICE = BASE_PACKAGE_PATH + "\\service\\";//生成的Service存放路径
31-
private static final String PACKAGE_PATH_SERVICE_IMPL = BASE_PACKAGE_PATH + "\\service\\impl\\";//生成的Service实现存放路径
32-
private static final String PACKAGE_PATH_CONTROLLER = BASE_PACKAGE_PATH + "\\web\\";//生成的Controller实现存放路径
30+
private static final String PACKAGE_PATH_SERVICE = packageConvertPath(SERVICE_PACKAGE);//生成的Service存放路径
31+
private static final String PACKAGE_PATH_SERVICE_IMPL = packageConvertPath(SERVICE_IMPL_PACKAGE);//生成的Service实现存放路径
32+
private static final String PACKAGE_PATH_CONTROLLER = packageConvertPath(CONTROLLER_PACKAGE);//生成的Controller存放路径
3333

3434
private static final String AUTHOR = "CodeGenerator";//@author
3535
private static final String DATE = new SimpleDateFormat("yyyy/MM/dd").format(new Date());//@date
@@ -63,12 +63,12 @@ public static void genModelAndMapper(String tableName) {
6363

6464
PluginConfiguration pluginConfiguration = new PluginConfiguration();
6565
pluginConfiguration.setConfigurationType("tk.mybatis.mapper.generator.MapperPlugin");
66-
pluginConfiguration.addProperty("mappers", ProjectConstant.MAPPER_INTERFACE_REFERENCE);
66+
pluginConfiguration.addProperty("mappers", MAPPER_INTERFACE_REFERENCE);
6767
context.addPluginConfiguration(pluginConfiguration);
6868

6969
JavaModelGeneratorConfiguration javaModelGeneratorConfiguration = new JavaModelGeneratorConfiguration();
7070
javaModelGeneratorConfiguration.setTargetProject(PROJECT_PATH + JAVA_PATH);
71-
javaModelGeneratorConfiguration.setTargetPackage(ProjectConstant.MODEL_PACKAGE);
71+
javaModelGeneratorConfiguration.setTargetPackage(MODEL_PACKAGE);
7272
context.setJavaModelGeneratorConfiguration(javaModelGeneratorConfiguration);
7373

7474
SqlMapGeneratorConfiguration sqlMapGeneratorConfiguration = new SqlMapGeneratorConfiguration();
@@ -78,7 +78,7 @@ public static void genModelAndMapper(String tableName) {
7878

7979
JavaClientGeneratorConfiguration javaClientGeneratorConfiguration = new JavaClientGeneratorConfiguration();
8080
javaClientGeneratorConfiguration.setTargetProject(PROJECT_PATH + JAVA_PATH);
81-
javaClientGeneratorConfiguration.setTargetPackage(ProjectConstant.MAPPER_PACKAGE);
81+
javaClientGeneratorConfiguration.setTargetPackage(MAPPER_PACKAGE);
8282
javaClientGeneratorConfiguration.setConfigurationType("XMLMAPPER");
8383
context.setJavaClientGeneratorConfiguration(javaClientGeneratorConfiguration);
8484

@@ -106,6 +106,11 @@ public static void genModelAndMapper(String tableName) {
106106
if (generator.getGeneratedJavaFiles().isEmpty() || generator.getGeneratedXmlFiles().isEmpty()) {
107107
throw new RuntimeException("生成Model和Mapper失败:" + warnings);
108108
}
109+
110+
String modelName = tableNameConvertUpperCamel(tableName);
111+
System.out.println(modelName + ".java 生成成功");
112+
System.out.println(modelName + "Mapper.java 生成成功");
113+
System.out.println(modelName + "Mapper.xml 生成成功");
109114
}
110115

111116
public static void genService(String tableName) {
@@ -118,7 +123,7 @@ public static void genService(String tableName) {
118123
String modelNameUpperCamel = tableNameConvertUpperCamel(tableName);
119124
data.put("modelNameUpperCamel", modelNameUpperCamel);
120125
data.put("modelNameLowerCamel", tableNameConvertLowerCamel(tableName));
121-
data.put("basePackage", ProjectConstant.BASE_PACKAGE);
126+
data.put("basePackage", BASE_PACKAGE);
122127

123128
File file = new File(PROJECT_PATH + JAVA_PATH + PACKAGE_PATH_SERVICE + modelNameUpperCamel + "Service.java");
124129
if (!file.getParentFile().exists()) {
@@ -151,7 +156,7 @@ public static void genController(String tableName) {
151156
String modelNameUpperCamel = tableNameConvertUpperCamel(tableName);
152157
data.put("modelNameUpperCamel", modelNameUpperCamel);
153158
data.put("modelNameLowerCamel", tableNameConvertLowerCamel(tableName));
154-
data.put("basePackage", ProjectConstant.BASE_PACKAGE);
159+
data.put("basePackage", BASE_PACKAGE);
155160

156161
File file = new File(PROJECT_PATH + JAVA_PATH + PACKAGE_PATH_CONTROLLER + modelNameUpperCamel + "Controller.java");
157162
if (!file.getParentFile().exists()) {
@@ -206,4 +211,7 @@ private static String tableNameConvertMappingPath(String tableName) {
206211
return "/" + (tableName.contains("_") ? tableName.replaceAll("_", "/") : tableName);
207212
}
208213

214+
private static String packageConvertPath(String packageName) {
215+
return String.format("\\%s\\", packageName.contains(".") ? packageName.replaceAll("\\.", "\\\\") : packageName);
216+
}
209217
}

0 commit comments

Comments
 (0)