UiUtils.java 3.02 KB
package com.taover.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.db.GenerateEntity;
import com.taover.db.TableColumn;
import com.taover.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<String> 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<String> tableNameList, boolean createAllTable) throws Exception{
		//取数据库连接
		Connection conn = getConnection(driver, user, password, url+schameName);
		
		//是否生成全部表实体
		if (createAllTable) {
			tableNameList = new ArrayList<String>();
			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<TableColumn> 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(outputPath, dbPackage, columnsInTable);
			System.out.println(tableNameCurr + " : 生成结束");
		}
		
		//关闭连接
		conn.close();
	}
}