【问题标题】:Java ResultSet - get Column name based on Index [duplicate]Java ResultSet - 根据索引获取列名[重复]
【发布时间】:2011-09-18 13:23:20
【问题描述】:

我想知道是否有办法根据结果集中的索引获取列名。

我知道如果你想根据 columnName 获取索引,你可以使用

int index = resultSet.findColumn(columnName);

但我需要相反的方式,例如:

String column = resultSet.findColumnName(index);

有可能吗?

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    我认为您需要查看ResultSet.getMetaData(),它返回与ResultSet 关联的元数据。

    然后您可以遍历列(使用getColumnCount() 找出有多少列)以查找具有给定名称的列,并使用getColumnName() 检查。不要忘记列索引是从 1 开始的,而不是从 0 开始的。比如:

    ResultSetMetaData metaData = resultSet.getMetaData();
    
    int count = metaData.getColumnCount();
    for (int i = 1; i <= count; i++)
    {
        if (metaData.getColumnName(i).equals(desiredColumnName))
        {
            // Whatever you want to do here.
        }
    }
    

    如果您需要为很多名称执行此操作,您可能需要构建一个HashMap&lt;String, Integer&gt; 以轻松映射它们。

    【讨论】:

      【解决方案2】:

      您应该可以使用ResultSetMetaData

      ResultSetMetaData rsmd = resultSet.getMetaData();
      String column = rsmd.getColumnName(index);
      

      【讨论】:

        【解决方案3】:

        ResultSetMetaData 'sgetColumnName() 怎么样?


        例如:

        ResultSetMetaData metaData = resultSet.getMetaData()
        metaData.getColumnName(1) ;
        

        另见

        【讨论】:

          【解决方案4】:

          使用标准JDBC,可以得到结果集的metadata

          ResultSetMetaData metadata = resultSet.getMetaData() 
          

          然后可以查询该对象的列名(按索引):

          String columnFiveName = metadata.getColumnName(5)
          

          【讨论】:

            【解决方案5】:
            resultSet.getMetaData().getColumnName(index);
            

            【讨论】:

              【解决方案6】:

              当然 - 使用java.sql.ResultSetMetaData

              ResultSetMetaData meta = resultSet.getMetaData();
              String column = meta.getColumnName(index);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-09-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-01-15
                相关资源
                最近更新 更多