Pārlūkot izejas kodu

抽离代码生成类,参数可配置

shuzheng 9 gadi atpakaļ
vecāks
revīzija
a1e788a2ea

+ 5 - 2
zheng-cms/zheng-cms-dao/src/main/java/com/zheng/cms/dao/Generator.java

@@ -10,7 +10,10 @@ import com.zheng.common.util.PropertiesFileUtil;
 public class Generator {
 public class Generator {
 
 
 	// 根据命名规范,只修改此常量值即可
 	// 根据命名规范,只修改此常量值即可
-	private static String MODULE_PREFIX_NAME = "cms";
+	private static String MODULE = "zheng-cms";
+	private static String DATABASE = "zheng";
+	private static String TABLE_PREFIX = "cms_";
+	private static String PACKAGE_NAME = "com.zheng.cms";
 	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
 	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
 	private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
 	private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
 	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
 	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
@@ -21,7 +24,7 @@ public class Generator {
 	 * @param args
 	 * @param args
 	 */
 	 */
 	public static void main(String[] args) {
 	public static void main(String[] args) {
-		MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE_PREFIX_NAME);
+		MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE, DATABASE, TABLE_PREFIX, PACKAGE_NAME);
 	}
 	}
 
 
 }
 }

+ 47 - 23
zheng-common/src/main/java/com/zheng/common/util/MybatisGeneratorUtil.java

@@ -13,6 +13,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+import static com.zheng.common.util.StringUtil.lineToHump;
+
 /**
 /**
  * 代码生成类
  * 代码生成类
  * Created by ZhangShuzheng on 2017/1/10.
  * Created by ZhangShuzheng on 2017/1/10.
@@ -21,28 +23,37 @@ public class MybatisGeneratorUtil {
 
 
 	// 模板路径
 	// 模板路径
 	private static String VM_PATH = "zheng-common/src/main/resources/template/generatorConfig.vm";
 	private static String VM_PATH = "zheng-common/src/main/resources/template/generatorConfig.vm";
-	// 项目名称
-	private static String PROJECT_NAME = "zheng";
-	// 数据库名称
-	private static String DATABASE_NAME = "zheng";
 
 
 	/**
 	/**
 	 * 根据模板生成generatorConfig.xml文件
 	 * 根据模板生成generatorConfig.xml文件
-	 * @param module_prefix_name
+	 * @param jdbc_driver   驱动路径
+	 * @param jdbc_url      链接
+	 * @param jdbc_username 帐号
+	 * @param jdbc_password 密码
+	 * @param module        项目模块
+	 * @param database      数据库
+	 * @param table_prefix  表前缀
+	 * @param package_name  包名
 	 */
 	 */
 	public static void generator(
 	public static void generator(
 			String jdbc_driver,
 			String jdbc_driver,
 			String jdbc_url,
 			String jdbc_url,
 			String jdbc_username,
 			String jdbc_username,
 			String jdbc_password,
 			String jdbc_password,
-			String module_prefix_name) {
-		String module_path = PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "/" + PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "-dao/src/main/resources/generatorConfig.xml";
-		String sql = "SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '" + DATABASE_NAME + "' AND table_name LIKE '" + module_prefix_name.replaceAll("\\.", "_") + "_%';";
+			String module,
+			String database,
+			String table_prefix,
+			String package_name) {
+
+		String targetProject = module + "/" + module + "-dao";
+		String module_path = module + "/" + module + "-dao/src/main/resources/generatorConfig.xml";
+		String sql = "SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '" + database + "' AND table_name LIKE '" + table_prefix + "_%';";
+
 		System.out.println("========== 开始生成generatorConfig.xml文件 ==========");
 		System.out.println("========== 开始生成generatorConfig.xml文件 ==========");
+		List<Map<String, Object>> tables = new ArrayList<>();
 		try {
 		try {
-			VelocityContext context= new VelocityContext();
-			List<Map<String, Object>> tables = new ArrayList<>();
-			Map<String, Object> table = null;
+			VelocityContext context = new VelocityContext();
+			Map<String, Object> table;
 
 
 			// 查询定制前缀项目的所有表
 			// 查询定制前缀项目的所有表
 			JdbcUtil jdbcUtil = new JdbcUtil(jdbc_driver, jdbc_url, jdbc_username, AESUtil.AESDecode(jdbc_password));
 			JdbcUtil jdbcUtil = new JdbcUtil(jdbc_driver, jdbc_url, jdbc_username, AESUtil.AESDecode(jdbc_password));
@@ -51,31 +62,30 @@ public class MybatisGeneratorUtil {
 				System.out.println(map.get("TABLE_NAME"));
 				System.out.println(map.get("TABLE_NAME"));
 				table = new HashMap<>();
 				table = new HashMap<>();
 				table.put("table_name", map.get("TABLE_NAME"));
 				table.put("table_name", map.get("TABLE_NAME"));
-				table.put("model_name", StringUtil.lineToHump(ObjectUtils.toString(map.get("TABLE_NAME"))));
+				table.put("model_name", lineToHump(ObjectUtils.toString(map.get("TABLE_NAME"))));
 				tables.add(table);
 				tables.add(table);
 			}
 			}
 			jdbcUtil.release();
 			jdbcUtil.release();
 
 
-			String targetProject = PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "/" + PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "-dao";
-			String targetProject_sqlMap = PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "/" + PROJECT_NAME + "-" + module_prefix_name.replaceAll("\\.", "-") + "-rpc-service";
+			String targetProject_sqlMap = module + "/" + module + "-rpc-service";
 			context.put("tables", tables);
 			context.put("tables", tables);
-			context.put("generator_javaModelGenerator_targetPackage", "com." + PROJECT_NAME + "." + module_prefix_name + ".dao.model");
-			context.put("generator_sqlMapGenerator_targetPackage", "com." + PROJECT_NAME + "." + module_prefix_name + ".dao.mapper");
-			context.put("generator_javaClientGenerator_targetPackage", "com." + PROJECT_NAME + "." + module_prefix_name + ".dao.mapper");
+			context.put("generator_javaModelGenerator_targetPackage", package_name + ".dao.model");
+			context.put("generator_sqlMapGenerator_targetPackage", package_name + ".dao.mapper");
+			context.put("generator_javaClientGenerator_targetPackage", package_name + ".dao.mapper");
 			context.put("targetProject", targetProject);
 			context.put("targetProject", targetProject);
 			context.put("targetProject_sqlMap", targetProject_sqlMap);
 			context.put("targetProject_sqlMap", targetProject_sqlMap);
 			context.put("generator_jdbc_password", AESUtil.AESDecode(jdbc_password));
 			context.put("generator_jdbc_password", AESUtil.AESDecode(jdbc_password));
 			VelocityUtil.generate(VM_PATH, module_path, context);
 			VelocityUtil.generate(VM_PATH, module_path, context);
 			// 删除旧代码
 			// 删除旧代码
-			deleteDir(new File(targetProject + "/src/main/java/com/" + PROJECT_NAME + "/" + module_prefix_name.replaceAll("\\.", "/") + "/dao/model"));
-			deleteDir(new File(targetProject + "/src/main/java/com/" + PROJECT_NAME + "/" + module_prefix_name.replaceAll("\\.", "/") + "/dao/mapper"));
-			deleteDir(new File(targetProject_sqlMap + "/src/main/java/com/" + PROJECT_NAME + "/" + module_prefix_name.replaceAll("\\.", "/") + "/dao/mapper"));
+			deleteDir(new File(targetProject + "/src/main/java/" + package_name.replaceAll(".", "/") + "/dao/model"));
+			deleteDir(new File(targetProject + "/src/main/java/" + package_name.replaceAll(".", "/") + "/dao/mapper"));
+			deleteDir(new File(targetProject_sqlMap + "/src/main/java/" + package_name.replaceAll(".", "/") + "/dao/mapper"));
 		} catch (Exception e) {
 		} catch (Exception e) {
 			e.printStackTrace();
 			e.printStackTrace();
 		}
 		}
 		System.out.println("========== 结束生成generatorConfig.xml文件 ==========");
 		System.out.println("========== 结束生成generatorConfig.xml文件 ==========");
+
 		System.out.println("========== 开始运行MybatisGenerator ==========");
 		System.out.println("========== 开始运行MybatisGenerator ==========");
-		// 生成代码
 		try {
 		try {
 			List<String> warnings = new ArrayList<>();
 			List<String> warnings = new ArrayList<>();
 			File configFile = new File(module_path);
 			File configFile = new File(module_path);
@@ -91,14 +101,28 @@ public class MybatisGeneratorUtil {
 			e.printStackTrace();
 			e.printStackTrace();
 		}
 		}
 		System.out.println("========== 结束运行MybatisGenerator ==========");
 		System.out.println("========== 结束运行MybatisGenerator ==========");
-		System.out.println("========== 开始生成 ==========");
+		String servicePath = module + "/" + module + "-rpc-api" + "/src/main/java/" + package_name.replaceAll(".", "/") + "/rpc/api";
+		String serviceImplPath = module + "/" + module + "-rpc-service" + "/src/main/java/" + package_name.replaceAll(".", "/") + "/rpc/service/impl";
+		for (int i = 0; i < tables.size(); i++) {
+			String model = StringUtil.lineToHump(ObjectUtils.toString(tables.get(i).get("table_name")));
+			String service = model + "Service";
+			String serviceMock = model + "ServiceMock";
+			String serviceImpl = model + "ServiceImpl";
+			System.out.println(service + "   " + serviceMock + "   " + serviceImpl);
+		}
+		System.out.println("========== 开始生成Service ==========");
+
+		System.out.println("========== 结束生成Service ==========");
+
+		System.out.println("========== 开始生成Controller ==========");
+		System.out.println("========== 结束生成Controller ==========");
 	}
 	}
 
 
 	// 递归删除非空文件夹
 	// 递归删除非空文件夹
 	public static void deleteDir(File dir) {
 	public static void deleteDir(File dir) {
 		if (dir.isDirectory()) {
 		if (dir.isDirectory()) {
 			File[] files = dir.listFiles();
 			File[] files = dir.listFiles();
-			for (int i = 0; i < files.length; i ++) {
+			for (int i = 0; i < files.length; i++) {
 				deleteDir(files[i]);
 				deleteDir(files[i]);
 			}
 			}
 		}
 		}

+ 5 - 2
zheng-upms/zheng-upms-dao/src/main/java/com/zheng/upms/dao/Generator.java

@@ -10,7 +10,10 @@ import com.zheng.common.util.PropertiesFileUtil;
 public class Generator {
 public class Generator {
 
 
 	// 根据命名规范,只修改此常量值即可
 	// 根据命名规范,只修改此常量值即可
-	private static String MODULE_PREFIX_NAME = "upms";
+	private static String MODULE = "zheng-upms";
+	private static String DATABASE = "zheng";
+	private static String TABLE_PREFIX = "upms_";
+	private static String PACKAGE_NAME = "com.zheng.upms";
 	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
 	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
 	private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
 	private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
 	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
 	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
@@ -21,7 +24,7 @@ public class Generator {
 	 * @param args
 	 * @param args
 	 */
 	 */
 	public static void main(String[] args) {
 	public static void main(String[] args) {
-		MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE_PREFIX_NAME);
+		MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE, DATABASE, TABLE_PREFIX, PACKAGE_NAME);
 	}
 	}
 
 
 }
 }