我如何生成一个由 SQL
表中的列名组成的表并将其添加到 JFRAME
/JPANEL
中。
我知道生成后如何添加它,但我如何实际生成它?
表称为属性,因此我希望从属性中选择*列名
并生成一个JTable
,然后我可以将其添加到JPANEL
。
基本上是一列水平行的列名,例如...
PropertyID 卧室地址 价格类型 发布日期
我尝试了以下代码,但它只生成表数据而不是列名称。
public static DefaultTableModel buildTableModel(ResultSet rs)
throws SQLException {
ResultSetMetaData metaData = (ResultSetMetaData) rs.getMetaData();
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount-1; column++) {
columnNames.add(metaData.getColumnName(column));
}
// data of the table
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
}
最佳答案
结果集元数据包含列名信息。
// Get the metadata
ResultSetMetaData md = rs.getMetaData() ;
// Print the column labels
for( int i = 1; i <= md.getColumnCount(); i++ )
System.out.print( md.getColumnLabel(i) + " " ) ;
System.out.println() ;
谷歌搜索结果集元数据发现了这个example code
关于java - 生成列名行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414564/