Java JTable不显示记录

Java JTable不显示记录,java,swing,jtable,hive,Java,Swing,Jtable,Hive,我正试图在一个新的框架中将记录从配置单元获取到JTable中。新的框架会弹出列名,但记录不可见。这是我的代码 try{ Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", ""); Statement stmt = con.createStatement(); ResultSet res; stmt.setMaxRows(val); sql

我正试图在一个新的框架中将记录从配置单元获取到JTable中。新的框架会弹出列名,但记录不可见。这是我的代码

try{
   Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", "");
   Statement stmt = con.createStatement();
   ResultSet res;
   stmt.setMaxRows(val);
   sql = "select * from default.recommendations where recommendations.item='" + user +"'";
   System.out.println("Running: " + sql);
   res = stmt.executeQuery(sql);
   while (res.next()) {
   System.out.println(res.getString(1) + "\t" + res.getString(2) + "\t" + res.getString(3));
   }                        
   ResultSetMetaData rsmt = res.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 (res.next()) {              
   row = new Vector(c);
   for(int i=1; i<=c; i++){
   row.add(res.getString(i));
   }
   data.add(row);
   }
   JFrame frame = new JFrame();
   frame.setSize(500, 120);
   frame.setLocationRelativeTo(null);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JPanel panel = new JPanel();
   JTable table = new JTable(data,column);
   JScrollPane jsp = new JScrollPane(table);
   panel.setLayout(new BorderLayout());
   panel.add(jsp,BorderLayout.CENTER);
   frame.setContentPane(panel);
   frame.setVisible(true);
} catch(SQLException se){
System.Out.Println(se.getMessage())}
完成查询后,您将读取所有数据并将其显示在控制台上

while (res.next()) {              
   row = new Vector(c);
   for(int i=1; i<=c; i++){
   row.add(res.getString(i));
   }
   data.add(row);
   }
然后,稍后尝试将数据读入向量。问题是ResultSet中没有数据,因为您已经读取了所有数据

摆脱第一个循环


如果要查看结果集的值,请将System.out.println。。。第二个循环中的语句。

将GUI代码从数据库代码中分离出来,以便可以单独调试它们,然后执行此操作-使用调试器单独调试各个类。找到错误的位置。然后,如果仍然卡住,请使用格式良好的代码返回,而不是使用格式糟糕的代码,因为上面的缩进确实很重要。最好是你发一个帖子。
while (res.next()) {              
   row = new Vector(c);
   for(int i=1; i<=c; i++){
   row.add(res.getString(i));
   }
   data.add(row);
   }