提交 516a3376 编写于 作者: shuzheng5201314's avatar shuzheng5201314

增强代码生成功能

上级 fd83aaa2
...@@ -23,7 +23,6 @@ public class JdbcUtil { ...@@ -23,7 +23,6 @@ public class JdbcUtil {
public JdbcUtil(String driver, String url, String username, String password) { public JdbcUtil(String driver, String url, String username, String password) {
try { try {
Class.forName(driver); Class.forName(driver);
System.out.println("注册驱动成功!!");
conn = DriverManager.getConnection(url, username, password); conn = DriverManager.getConnection(url, username, password);
System.out.println("数据库连接成功"); System.out.println("数据库连接成功");
} catch (Exception e) { } catch (Exception e) {
...@@ -84,6 +83,7 @@ public class JdbcUtil { ...@@ -84,6 +83,7 @@ public class JdbcUtil {
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println("释放数据库连接");
} }
} }
package com.zheng.common.util;
import org.apache.commons.lang.ObjectUtils;
import org.apache.velocity.VelocityContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 代码生成类
* Created by ZhangShuzheng on 2017/1/10.
*/
public class MybatisGeneratorConfigUtil {
// 模板路径
private static String VM_PATH = "zheng-common/src/main/resources/generatorConfig.vm";
// 项目名称
private static String PROJECT_NAME = "zheng";
// 数据库名称
private static String DATABASE_NAME = "zheng";
/**
* 根据模板生成generatorConfig.xml文件
* @param module_prefix_name
*/
public static void generator(
String jdbc_driver,
String jdbc_url,
String jdbc_username,
String jdbc_password,
String module_prefix_name) {
String module_path = PROJECT_NAME + "-" + module_prefix_name + "/" + PROJECT_NAME + "-" + module_prefix_name + "-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 + "_%';";
System.out.println("========== 开始生成代码 ==========");
try {
VelocityContext context= new VelocityContext();
List<Map<String, Object>> tables = new ArrayList<>();
Map<String, Object> table = null;
// 查询定制前缀项目的所有表
JdbcUtil jdbcUtil = new JdbcUtil(jdbc_driver, jdbc_url, jdbc_username, jdbc_password);
List<Map> result = jdbcUtil.selectByParams(sql, null);
for (Map map : result) {
System.out.println(map.get("TABLE_NAME"));
table = new HashMap<>();
table.put("table_name", map.get("TABLE_NAME"));
table.put("model_name", StringUtil.lineToHump(ObjectUtils.toString(map.get("TABLE_NAME"))));
tables.add(table);
}
jdbcUtil.release();
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");
VelocityUtil.generate(VM_PATH, module_path, context);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("========== 结束生成代码 ==========");
}
}
package com.zheng.common.util; package com.zheng.common.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* String 工具类 * String 工具类
* Created by shuzheng on 2016/12/07. * Created by shuzheng on 2016/12/07.
*/ */
public class StringUtil { public class StringUtil {
private static Pattern linePattern = Pattern.compile("_(\\w)");
private static Pattern humpPattern = Pattern.compile("[A-Z]");
/**
* 下划线转驼峰
* @param str
* @return
*/
public static String lineToHump(String str) {
if (null == str || "".equals(str)) {
return str;
}
str = str.toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
str = sb.toString();
str = str.substring(0, 1).toUpperCase() + str.substring(1);
return str;
}
/**
* 驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)})
* @param str
* @return
*/
public static String humpToLine(String str) {
return str.replaceAll("[A-Z]", "_$0").toLowerCase();
}
/**
* 驼峰转下划线,效率比上面高
* @param str
* @return
*/
public static String humpToLine2(String str) {
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
/** /**
* object转String * object转String
* @param object * @param object
...@@ -73,6 +126,8 @@ public class StringUtil { ...@@ -73,6 +126,8 @@ public class StringUtil {
System.out.println(getInt("1")); System.out.println(getInt("1"));
System.out.println(getInt("xx")); System.out.println(getInt("xx"));
System.out.println(getInt("xx", 4)); System.out.println(getInt("xx", 4));
System.out.println(lineToHump("cms_article_test"));
} }
} }
...@@ -55,13 +55,13 @@ ...@@ -55,13 +55,13 @@
password="${jdbc.password}" /> password="${jdbc.password}" />
<!-- model生成 --> <!-- model生成 -->
<javaModelGenerator targetPackage="${generator.javaModelGenerator.targetPackage}" targetProject="src/main/java" /> <javaModelGenerator targetPackage="${generator_javaModelGenerator_targetPackage}" targetProject="src/main/java" />
<!-- MapperXML生成 --> <!-- MapperXML生成 -->
<sqlMapGenerator targetPackage="${generator.sqlMapGenerator.targetPackage}" targetProject="src/main/java" /> <sqlMapGenerator targetPackage="${generator_sqlMapGenerator_targetPackage}" targetProject="src/main/java" />
<!-- Mapper接口生成 --> <!-- Mapper接口生成 -->
<javaClientGenerator targetPackage="${generator.javaClientGenerator.targetPackage}" targetProject="src/main/java" type="XMLMAPPER" /> <javaClientGenerator targetPackage="${generator_javaClientGenerator_targetPackage}" targetProject="src/main/java" type="XMLMAPPER" />
<!-- 需要映射的表 --> <!-- 需要映射的表 -->
#foreach($table in $tables) #foreach($table in $tables)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册