jinlin
2023-11-22 906df84cc340d514b8890527e52ac23170a022ca
zt/core/src/main/java/com/zt/generator/data/DBUtil.java
@@ -6,10 +6,8 @@
import org.springframework.jdbc.core.JdbcTemplate;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
public class DBUtil {
@@ -18,7 +16,7 @@
        try {
            DatabaseMetaData dbm = conn.getMetaData();
            String currentCatalog = conn.getCatalog();
            String[] types = { "TABLE" };
            String[] types = {"TABLE"};
            ResultSet tabs = dbm.getTables(currentCatalog, null, tableName, types);
            if (tabs.next()) {
                return true;
@@ -28,26 +26,60 @@
        }
        return false;
    }
    public static DataTable getTableList(Connection conn, boolean closeFlag) {
        try {
        DatabaseMetaData dbm = conn.getMetaData();
        String currentCatalog = conn.getCatalog();
        ResultSet rs = dbm.getTables(currentCatalog, null, null, null);
        DataTable dt = new DataTable(rs);
        return dt;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (closeFlag && conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
    public static DataTable getColumnInfo(Connection conn, String tableName, boolean closeFlag) {
        try {
            DatabaseMetaData dbm = conn.getMetaData();
            String currentCatalog = conn.getCatalog();
            Map<String, String> mapDict = new HashMap<>();
            String sql = "SELECT * FROM sys_dict_type WHERE is_delete=0";
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            ResultSet resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                String dictType = resultSet.getString("DICT_TYPE");
                mapDict.put(dictType, dictType);
            }
            ResultSet rs = dbm.getColumns(currentCatalog, null, tableName, null);
            DataTable dt = new DataTable(rs);
            rs = dbm.getPrimaryKeys(currentCatalog, null, tableName);
            DataTable keyDt = new DataTable(rs);
            Map map = keyDt.toMap("Column_Name", "PK_Name");
            dt.insertColumn("isKey");
            dt.insertColumn("dictType");
            for (int i = 0; i < dt.getRowCount(); i++) {
                DataRow dr = dt.getDataRow(i);
                if (map.containsKey(dr.getString("Column_Name"))) {
                String columnName = dr.getString("Column_Name");
                if (map.containsKey(columnName)) {
                    dr.set("isKey", "Y");
                } else {
                    dr.set("isKey", "N");
                }
                if (mapDict.get(columnName) != null) {
                    dr.set("dictType", columnName);
                } else {
                    dr.set("dictType", "");
                }
            }
            return dt;
        } catch (Exception e) {