Java SQL数据和JTable
我正在尝试一个示例程序进行实践,我想在JTable中显示数据库的结果。问题是我不知道怎么做。我知道如何从数据库中获取数据并将其显示在文本字段或控制台上,但从未尝试使用JTable。怎么做 假设我有一个表,它包含诸如人名、年龄、城市和日期之类的信息。我希望它通过JTable显示。如果我添加了在程序中添加更多细节的选项(我的意思是向数据库中添加条目,然后在JTable中立即显示),是否可以更新JTable显示Java SQL数据和JTable,java,sql,swing,Java,Sql,Swing,我正在尝试一个示例程序进行实践,我想在JTable中显示数据库的结果。问题是我不知道怎么做。我知道如何从数据库中获取数据并将其显示在文本字段或控制台上,但从未尝试使用JTable。怎么做 假设我有一个表,它包含诸如人名、年龄、城市和日期之类的信息。我希望它通过JTable显示。如果我添加了在程序中添加更多细节的选项(我的意思是向数据库中添加条目,然后在JTable中立即显示),是否可以更新JTable显示 如有任何关于如何进行的建议和建议,我们将不胜感激。提前谢谢 JDBC+JTable@goo
如有任何关于如何进行的建议和建议,我们将不胜感激。提前谢谢 JDBC+JTable@google:
- 以下是代码
public static TableModel resultSetToTableModel(ResultSet rs) {
try {
ResultSetMetaData metaData = rs.getMetaData();
int numberOfColumns = metaData.getColumnCount();
Vector<String> columnNames = new Vector<String>();
// Get the column names
for (int column = 0; column < numberOfColumns; column++) {
columnNames.addElement(metaData.getColumnLabel(column + 1).toUpperCase());
}
// Get all rows.
Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> newRow = new Vector<Object>();
for (int i = 1; i <= numberOfColumns; i++) {
newRow.addElement(rs.getObject(i));
}
rows.addElement(newRow);
}
return new DefaultTableModel(rows, columnNames);
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}和Ok一样,我能理解它可能是重复的。但我问的是如何将结果从SQL表显示到JTable,它仍然是重复的?好的。这是有帮助的,但不能完全回答我的问题。无论如何,谢谢你的评论。
void update_Table() throws ParseException
{
// we used this try catch so that values in table automatically show(without clicking on any button) when the dialog box open
try
{
Connection con=MSUTIL.getMSConnection();
PreparedStatement pst=con.prepareStatement("select payment_mode from PaymentMode");
ResultSet rs=pst.executeQuery();
//here i call that method
table.setModel(resultSetToTableModel(rs));
table.getTableHeader().setFont(new Font("SansSerif", Font.BOLD, 14));
while(rs.next())
{
mp.paymentmode_ComboBox.addItem(rs.getString("payment_mode"));
}
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
//this method is for closing the connection
MSUTIL.cleanUp(con, pst, rs);
}