package com.taover.codegenerate.db; 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; /* * 如果列是自增长;在数据库描述中需要进行如下描述seq|属性描述 * 不支持联合主键 * 同时如果有自己的sequence 则命名规则如下: * "SEQ_" + TableSchema + "_" + TableName + "_" + ColumnName * SEQ_schame_tablename(SEQ_EGROCERY_DEVEL_SS_SKU_SKU_ID) * */ public class GenerateDaoPO { public static void main(String[] args) 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 createSchame = properties.getProperty("CreateSchame"); String dbLikeStr = properties.getProperty("DBLikeStr"); String dbType = properties.getProperty("dbtype"); String dbPackagePath = properties.getProperty("packageName"); String tableName = properties.getProperty("TableName"); if("mysql".equalsIgnoreCase(dbType)){ //schameName = schameName.toUpperCase(); } if (!dbPackagePath.substring(dbPackagePath.length()-1).equals(".")) dbPackagePath += "."; if (createSchame.equalsIgnoreCase("true") || "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 ; List result = new ArrayList(); try { while (rs.next()) { tableNameList.add(rs.getString("Table_name")); } } catch (SQLException e) { e.printStackTrace(); result = null; } 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类 GenerateEntity.generateEntity(schameName, outputPath, dbPackagePath, columnsInTable); // 生成po类 GeneratePO.generatePO(outputPath, dbPackagePath, columnsInTable); // 生成Dao GenerateDao.table2dao(outputPath, dbPackagePath, columnsInTable, dbType); System.out.println(tableNameCurr + " : 生成结束"); } conn.close(); System.out.println("全部结束"); } }