使用数据库中的表获取列名称

时间:2017-03-02 12:39:00

标签: java swing

我想在访问表时显示列名行。在这里我尝试了这个代码......但只显示没有列名的表。 使用java eclipse和sqlite数据库

@Html.ValidationMessageFor(m => m.PostedFile)
@Html.ValidationMessageFor(m => m.FileName)

4 个答案:

答案 0 :(得分:4)

您可以使用以下代码获取列名称:

ResultSetMetaData metaData = rs.getMetaData();
int count = metaData.getColumnCount(); // get column count

for (int i = 1; i <= count; i++){
   System.out.println(metaData.getColumnLabel(i));
}

答案 1 :(得分:2)

ResultSet始终包含返回的行,但不包含列名。

要获取列名,您可以在代码下方使用。

ResultSetMetaData metadata = rs.getMetaData();

int columnCount = metadata.getColumnCount();

String column_names[] = new String[ columnCount ]; // define a array to store the column names

for (int i=0; i<=columnCount; i++) {

  column_names[ i ] = metadata.getColumnLabel(i); // push column names into array
}

DefaultTableModel table_model = new DefaultTableModel( column_names, columnCount ); // create a table model based of the columns and column count

table=new JTable( table_model ); // create a new table with that model

答案 2 :(得分:1)

String column_i = table.getModel().getColumnName(i);

通过'i'迭代;因为它代表列的索引。 干杯!

答案 3 :(得分:0)

JScrollPane pane = new JScrollPane(table);
contentPane.add(table);
JscrollPane.add(table);

以上代码都很混乱:

  1. 首先使用表格创建一个滚动窗格(这是正确的),然后将表格添加到内容窗格(这是不正确的)。一个表只能有一个父表,因此它将从滚动窗格中删除。

  2. 然后您尝试将表格添加回滚动窗格,这将无效,因为您需要将表格添加到滚动窗格的viewport,而不是直接添加到滚动窗格。

    < / LI>

    所以你需要的底线是:

    JScrollPane pane = new JScrollPane(table);
    //contentPane.add(table);
    //JscrollPane.add(table);
    

    编辑:

    首先让代码在没有SQL的情况下运行。使用上述建议,然后更改您当前的代码:

    //table.setModel(DbUtils.resultSetToTableModel(rs));   
    table.setModel( new DefaultTableModel(5,5) );
    

    这应显示一个包含5行和5列的空表。

    1. 如果您看到该表,则问题出在您的SQL上,您将返回一个空的ResultSet。

    2. 如果您没有看到该表,那么您的代码中的其他位置就会出现问题。