Pawan
Pawan

Reputation: 32331

How to give Column Name to ResultSet dynamically in this case?

I have an ArrayList as shown below

  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();
        }
    }

}

How can i give the column name which is dynamic in this case in line VendorItems_RSet.getString();??

Upvotes: 0

Views: 1027

Answers (3)

Yagnesh Agola
Yagnesh Agola

Reputation: 4639

You need as ResultSetMetaData to get the column name associated with your query result.
You can get ResultSetMetaData from ResultSet by using ResultSet.getMetaDate, you can iterate it and get column all column name.

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);
}

I think you need all column data for that you can iterate your loop like

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); 
  }         
}

Upvotes: 1

Vishvesh Phadnis
Vishvesh Phadnis

Reputation: 2578

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
    }
}

Upvotes: 1

Joop Eggen
Joop Eggen

Reputation: 109567

SELECT * and then

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

Upvotes: 0

Related Questions