使用DatabaseMetaData.getColumns获取数据表的列名

紧跟上一篇帖子:https://blog.csdn.net/Min_Monk/article/details/93717421

这里介绍通过DatabaseMetaData.getColumns来获取表的列名

API方法介绍

/**
 * 得到全部列名
 * @param String catalog 类别名称;它必须与存储在数据库中的类别名称匹配;该参数为 "" 表示获取没有类别的那些描述;为 null 则表示该类别名称不应该用于缩小搜索范围
 * @param String schemaPattern 模式名称的模式;它必须与存储在数据库中的模式名称匹配;该参数为 "" 表示获取没有模式的那些描述;为 null 则表示该模式名称不应该用于缩小搜索范围
 * @param String tableNamePattern 表名称模式;它必须与存储在数据库中的表名称匹配
 * @param String columnNamePattern 列名称模式;它必须与存储在数据库中的列名称匹配
 * @return 每一行都是一个列描述
 * @throws SQLException 如果发生数据库访问错误
 */
ResultSet getColumns(String catalog,
                     String schemaPattern,
                     String tableNamePattern,
                     String columnNamePattern)
                     throws SQLException

实战Demo

public static void pageAllTableColumn(String tableNamePattern, int pageSize, int pageNum) {
        Connection conn = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();
            DatabaseMetaData dbmd = conn.getMetaData();
            rs = dbmd.getColumns(null, "CSBDEVW", tableNamePattern.toUpperCase(), "%");
            List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
            while(rs.next()) {
                Map<String, Object> map = new HashMap<String, Object>();
                map.put("COLUMN_NAME", rs.getString("COLUMN_NAME"));
                map.put("DATA_TYPE", rs.getString("DATA_TYPE"));
                map.put("TYPE_NAME", rs.getString("TYPE_NAME"));
                map.put("COLUMN_SIZE", rs.getString("COLUMN_SIZE"));
                map.put("NULLABLE", rs.getString("NULLABLE"));
                tempList.add(map);
                System.out.println(map);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != conn) {
                    conn.close();
                }
                if (null != rs) {
                    rs.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/Min_Monk/article/details/93721977