package com.taover.business; import java.io.File; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.Vector; import com.taover.base.template.model.bussiness.EnvironmentModel; import com.taover.db.GenerateDao; import com.taover.db.GeneratePO; import com.taover.db.TableColumn; import com.taover.db.Tools; import com.taover.tools.StringUtil; public class GenerateVCSDP { public static void main(String[] args) { try { generate(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void generate() throws Exception{ //读取配置文件 Properties properties = Tools.getProperties(); //取数据库连接 Connection conn = Tools.getConnection(properties); //初始化要生成的表列表 List tableNameList = new ArrayList(); //读取基本信息 String outputPath = properties.getProperty("OutputPath"); String schameName = properties.getProperty("SchameName"); String dbLikeStr = properties.getProperty("DBLikeStr"); String dbType = properties.getProperty("dbtype"); String dbPackagePath = properties.getProperty("packageName"); String tableName = properties.getProperty("TableName"); //读取配置文件信息-Controller、Service层需要 String modulePackageInfo = properties.getProperty("modulePackageInfo"); String moduleFilePath = properties.getProperty("moduleFilePath"); String dbPackageInfo = properties.getProperty("dbPackageInfo"); //如果文件已存在是否覆盖 boolean coverWhenFileExists = false; if(properties.getProperty("coverWhenFileExists") != null){ coverWhenFileExists = Boolean.valueOf(properties.getProperty("coverWhenFileExists")); } //读取配置文件信息-HTML、JS需要 String webRootPath = properties.getProperty("WebRootPath"); if("mysql".equalsIgnoreCase(dbType)){ schameName = schameName.toUpperCase(); } if (!dbPackagePath.substring(dbPackagePath.length()-1).equals(".")) dbPackagePath += "."; if ("ALL".equalsIgnoreCase(tableName) ) { String sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '"+schameName+"'"; ResultSet rs = Tools.executeQuery(Tools.createStmt(conn), sql); if (null == rs) return ; try { while (rs.next()) { tableNameList.add(rs.getString("Table_name")); } } catch (SQLException e) { e.printStackTrace(); } Tools.close(rs); } else { if("mysql".equalsIgnoreCase(dbType)){ // tableName = tableName.toUpperCase(); } String[] TableNameArr = tableName.split(","); for (int i = 0; i < TableNameArr.length; i++) tableNameList.add(TableNameArr[i]); } for (int i = 0; i < tableNameList.size(); i++) { String tableNameCurr = (String) tableNameList.get(i); // 取得表中所有列 Vector columnsInTable = TableColumn.GetTableInfo(conn, schameName, tableNameCurr, dbLikeStr, dbType); if (columnsInTable == null || columnsInTable.size() == 0) { System.out.println(tableNameCurr + " : 生成失败,得不到表中列明"); continue; } TableColumn pkcolum = TableColumn.getPKColum(columnsInTable); if (pkcolum == null) { System.out.println(tableNameCurr + " : 生成失败,未设置主键"); continue; } // 生成po类 GeneratePO.generatePO(outputPath, dbPackagePath, columnsInTable); // 生成Dao GenerateDao.table2dao(outputPath, dbPackagePath, columnsInTable, dbType); String beanClassName = StringUtil.formatBeanNameFirstUpper(tableNameCurr); String poPackageInfo = dbPackageInfo + "." + beanClassName.toLowerCase(); String moduleName = tableNameCurr.split("_")[0]; EnvironmentModel envir = EnvironmentModel.createEnvironmentModel(modulePackageInfo, moduleFilePath, poPackageInfo, beanClassName, moduleName); //生成Controller层 GenerateController.generateController(envir, coverWhenFileExists, columnsInTable); //生成Service层 GenerateService.generateService(envir, coverWhenFileExists); //生成view GenerateView.generateView(webRootPath, tableNameCurr, columnsInTable, coverWhenFileExists); System.out.println(tableNameCurr + " : 生成结束"); } conn.close(); System.out.println("全部结束"); } }