如何将数据库中的表名显示到JTable?

我想获取数据库中的所有表名并将其显示在JTable.


它正在打印:


con =  DriverManager.getConnection("jdbc:h2:C:/SimpleGST/GST/INVOICES","sa","");

String[] types = {"TABLE"};

DatabaseMetaData metadata = con.getMetaData();

ResultSet resultSet = metadata.getTables(null, null, "%", types);

while (resultSet.next()) {

    String tableName = resultSet.getString(3);

    System.out.println(tableName);

    table.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(resultSet));

}

它正在打印表名,但没有显示在表中。


FFIVE
浏览 209回答 2
2回答

翻阅古今

while (resultSet.next()) {    String tableName = resultSet.getString(3);    System.out.println(tableName);    table.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(resultSet));}您有一个 while 循环,它不断用您读取的每一行数据替换模型。因此,在您最后一次尝试设置模型时,已经读取了 ResultSet 中的所有数据。使用该resultSetToTableModel(...)方法的要点是将为您读取 ResultSet 中的所有数据并创建 TableModel。所以不需要while循环。你需要用一行代码替换上面的代码:table.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(resultSet));编辑:但它显示了太多其他列..我只想显示表格然后您需要手动创建表模型。代码类似于:Vector columnNames = new Vector();columnNames.addElement("Table");DefaultTableModel model = new DefaultTableModel(columnNames, 0);while (resultSet.next()) {    Vector row = new Vector();    row.addElement( resultSet.getString(3) );    model.addRow(row);}table = new JTable( model );scrollPane.setViewportView( table );

青春有我

Vector columnNames = new Vector();    columnNames.addElement("Table");    DefaultTableModel model = new DefaultTableModel(columnNames, 0);    try{con = DriverManager.getConnection("your url");        String[] types = {"TABLE"};        DatabaseMetaData metadata = con.getMetaData();        ResultSet resultSet = metadata.getTables(null, null, "%", types);            while (resultSet.next())             {                Vector row = new Vector();                row.addElement( resultSet.getString(3) );                model.addRow(row);            }            table = new JTable(model  );            scrollPane = new JScrollPane( table );            scrollPane.setBounds(10, 11, 724, 639);            contentPane.add( scrollPane );            scrollPane.setViewportView(table);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java