获取列名然后将其替换为rs.getString()?

时间:2013-12-10 16:17:52

标签: java sqlite resultset

我正在连接到sqlite数据库并抓取所有列名。我需要帮助的是将这些列名放在rs.getString中并插入在String数组中获取的值,然后可以在tablemodel上设置。

我的代码现在:

 stmt = c.createStatement();
  ResultSet rs = stmt.executeQuery(query);

  ResultSetMetaData rsmd = rs.getMetaData();
  int columnCount = rsmd.getColumnCount();

 // The column count starts from 1
 for (int i = 1; i < columnCount + 1; i++ ) {
 String name = rsmd.getColumnName(i);
 System.out.println(name);
 // Do stuff with name
 model.setColumnCount(i);


 }

  while ( rs.next() ) {
    String value1 = "";
      String value2 = "";
        String value3 = "";
          String value4 = "";
     value1 = rs.getString("SNO");
     value2 = rs.getString("SNAME");
     value3 = rs.getString("STATUS");
     value4 = rs.getString("CITY");


     model.addRow(new Object[] { value1,value2,value3,value4});

  }

我希望它是什么:

  stmt = c.createStatement();
  ResultSet rs = stmt.executeQuery(query);

  ResultSetMetaData rsmd = rs.getMetaData();
  int columnCount = rsmd.getColumnCount();

  // The column count starts from 1
   for (int i = 1; i < columnCount + 1; i++ ) {
    String name = rsmd.getColumnName(i);
    System.out.println(name);
   // Do stuff with name
   model.setColumnCount(i);


  }

  while ( rs.next() ) {
   String values[];
   values[] = rs.getString(name);        

     model.addRow(new Object[] {values[]});

      }

1 个答案:

答案 0 :(得分:0)

请勿继续致电model.setColumnCount(i);。只需设置一次(在for循环之外),就像这样model.setColumnCount(columnCount);

// Do stuff with name
model.setColumnCount(i); // Not this...

// Do stuff with name
model.setColumnName(i, name); // Something like this... that is set the name