package com.taover.codegenerate.ui; import java.sql.Connection; import java.sql.DriverManager; 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.codegenerate.db.GenerateEntity; import com.taover.codegenerate.db.TableColumn; import com.taover.codegenerate.db.Tools; public class UiUtils { public static String getProjectRoot(){ return UiUtils.class.getResource("/").getPath(); } public static Connection getConnection(String driver, String user, String password, String url) { Connection conn = null; try { Class.forName(driver); Properties prop = new Properties(); prop.setProperty("user", user); prop.setProperty("password", password); prop.setProperty("remarks", "true"); conn = DriverManager.getConnection(url, prop); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void generateEntity(Properties prop, String dbPackage, String outputPath, String schameName, List tableNameList, boolean createAllTable) throws Exception{ String driver = prop.getProperty("driver"); String user = prop.getProperty("User"); String password = prop.getProperty("Password"); String url = prop.getProperty("URL"); generateEntity(driver, user, password, url, dbPackage, outputPath, schameName, tableNameList, createAllTable); } public static void generateEntity(String driver, String user, String password, String url, String dbPackage, String outputPath, String schameName, List tableNameList, boolean createAllTable) throws Exception{ //取数据库连接 Connection conn = getConnection(driver, user, password, url+schameName); //是否生成全部表实体 if (createAllTable) { tableNameList = new ArrayList(); 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); } //遍历生成表实体 for (int i = 0; i < tableNameList.size(); i++) { String tableNameCurr = (String) tableNameList.get(i); //取得表中所有列 Vector columnsInTable = TableColumn.GetTableInfo(conn, schameName, tableNameCurr, "%", "mysql"); 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, dbPackage, columnsInTable); System.out.println(tableNameCurr + " : 生成结束"); } //关闭连接 conn.close(); } }