Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将向量添加到现有jTable以显示数据库中的记录_Java_Mysql_Swing_Vector - Fatal编程技术网

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 );