JDBC通过ResultSetMetaData读取查询结果结构

有时需要对Select的查询结果判断其结构,这时有可能就要用ResultSetMetaData。我之前做一个系统,要判断Access查询结果的型号,如果型号不对就返回异常。之后虽然改成用DatabaseMetaData检索了,但我觉得用ResultSetMetaData的方法也应该记下来,以后可能用到。

ResultSetMetaData的使用方法是先用Select查询出结果,用ResultSet.getMetaData()方法取得ResultSetMetaData对象。ResultSetMetaData对象的方法如下(只列了一部分,详细的可以看JDK文档

方法 => 说明
getColumnLabel => 列名
getColumnTypeName => 列型名

测试代码如下:

public static void getAllCol(Connection conn) throws SQLException {
    PreparedStatement stmt = conn.prepareStatement("select * from T_BAT_DATE_ADMIN");
    ResultSet selectResult = stmt.executeQuery();
    ResultSetMetaData metaData = selectResult.getMetaData();
    for (int i = 1; i <= metaData.getColumnCount(); i++) {
        System.out.println("Column Label:" + metaData.getColumnLabel(i));
        System.out.println("Column Name:" + metaData.getColumnName(i));
        System.out.println("Column Type:" + metaData.getColumnType(i));
        System.out.println("Column Type Name:" + metaData.getColumnTypeName(i));
        System.out.println("Column Display Size:" + metaData.getColumnDisplaySize(i));
        System.out.println("Column Class Name:" + metaData.getColumnClassName(i));
    }
    stmt.close();
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注