遍历ResultSet结果集的列信息

现在的SSH开发框架非常流行,使得大家都有点忘记了JDBC的用法。笔者在工作中刚好遇到一个场景,由于对性能有较高要求,并且尽可能采用轻量级的技术方案,最终选择了最原始的JDBC技术。

在功能模块开发的过程中,由于SQL是动态生成的,在获取结果集后要通过遍历ResultSet的列,将ResultSet转换为Map对象,在这里需要使用到结果集元数据类型。关键代码如下:

Map dataMap=new HashMap();
Statement st=conn.createStatement();
String sql="select * from BPM_table1";
ResultSet rs=st.executeQuery(sql);
if (rs.next()) {
    ResultSetMetaData rsMeta=rs.getMetaData();
    int columnCount=rsMeta.getColumnCount();
    for (int i=1; i<=columnCount; i++) {
        dataMap.put(rsMeta.getColumnLabel(i), rs.getObject(i));
    }
}

要注意的是rsMeta.getColumnCount()这个方法,获取结果集列数,数字是从1开始的。

你可能感兴趣的:(java)