繁体   English   中英

在这种情况下,如何动态地将Column Name赋予ResultSet?

[英]How to give Column Name to ResultSet dynamically in this case?

我有一个ArrayList如下所示

  import java.util.ArrayList;

public class Mann {

    public static void main(String args[]) {

        ArrayList<String> billOrderList = new ArrayList<String>();

        list.add("VAT");
        list.add("Discount");
        list.add("SERVICE CHARGE");

        StringBuilder select_query = new StringBuilder();
        select_query.append("Select ");

        for (int i = 0; i < billOrderList.size(); i++) {

            if (i != billOrderList.size() - 1) {
                select_query.append("" + billOrderList.get(i) + " , ");
            } else {
                select_query.append("" + billOrderList.get(i) + "");
            }
        }

        select_query.append(" From VENDOR_ITEMS WHERE vendor_items_id = "
                + vendor_item + "");

        VendorItems_Pstmt = dbConnection.prepareStatement(select_query
                .toString());
        VendorItems_RSet = VendorItems_Pstmt.executeQuery();
        while (VendorItems_RSet.next()) {

            String tax_name = VendorItems_RSet.getString();
        }
    }

}

如何在VendorItems_RSet.getString();行中给定动态列名?

ResultSetMetaData resultSetMetaData = VendorItems_RSet.getMetaData();
        for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {            
            String type = resultSetMetaData.getColumnTypeName(i);  // Get Column type 
            String name= resultSetMetaData.getColumnName(i);   //Column name
    }
}

您需要作为ResultSetMetaData来获取与查询结果关联的列名称。
您可以使用ResultSetMetaDataResultSet获取ResultSetMetaData ,可以对其进行迭代并获取所有列的列名。

ResultSetMetaData  VendorItems_RSet_metaData = VendorItems_RSet.getMetaData(); 
int numberOfColumns = VendorItems_RSet_metaData .getColumnCount(); 
for(int i=1;i<=numberOfColumns;i++)
{   
   String columnName = VendorItems_RSet_metaData.getColumnName(i);
}

我认为您需要所有列数据,以便可以像

while (VendorItems_RSet.next()) 
{
  for(int i=1;i<=numberOfColumns;i++)
  {   
     String columnName = VendorItems_RSet_metaData.getColumnName(i);
     String tax_name = VendorItems_RSet.getString(columnName);
     System.out.println(tax_name); 
  }         
}

SELECT * ,然后

ResultSetMetaData metaData = VendorItems_RSet.getMetaData();
int columns = metaData.getColumnCount();
for (int i = 1; i <= columns; ++i) {
    System.out.println(metaData.getColumnName(1));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM