Java 将向量添加到现有jTable以显示数据库中的记录
我开发了以下代码Java 将向量添加到现有jTable以显示数据库中的记录,java,mysql,swing,vector,Java,Mysql,Swing,Vector,我开发了以下代码 try{ con = DriverManager.getConnection("jdbc:mysql://localhost:3306/online_store","username","password"); if(con != null){ String query = "SELECT * FROM expense"; rs = stmt.executeQuery(qu
try{
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/online_store","username","password");
if(con != null){
String query = "SELECT * FROM expense";
rs = stmt.executeQuery(query);
ResultSetMetaData rsmt = rs.getMetaData();
int c = rsmt.getColumnCount();
Vector column = new Vector(c);
for(int i = 1; i <= c; i++) { column.add(rsmt.getColumnName(i)); }
Vector data = new Vector(); Vector row = new Vector();
while(rs.next())
{
row = new Vector(c);
for(int i = 1; i <= c; i++)
{
row.add(rs.getString(i));
}
data.add(row);
}
expense_table.add(data);
// expense_table.getColumnName(null);
JOptionPane.showMessageDialog(null, "get details from database");
}
}catch(SQLException ex){
System.out.println(ex);
}
试试看{
con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/online_store“,”用户名“,”密码“);
如果(con!=null){
String query=“从费用中选择*”;
rs=stmt.executeQuery(查询);
ResultSetMetaData rsmt=rs.getMetaData();
int c=rsmt.getColumnCount();
向量列=新向量(c);
对于(int i=1;i
我需要在此表中显示数据库中的所有记录,而不更改其结构/不创建新表
因此,您不需要从ResultSet访问列名。您只需要向JTable添加新行数据。因此,摆脱创建“列”向量的逻辑
您不能将向量添加到JTable。没有方法允许您这样做,所以请删除该语句
相反,您需要将数据一次添加到DefaultTableModel
一行:
//data.add(row);
DefaultTableModel model = (DefaultTableModel)expense_table.getModel();
model.addRow( row );
//data.add(row);
DefaultTableModel model = (DefaultTableModel)expense_table.getModel();
model.addRow( row );