Java JTable 不显示记录

标签 java swing jtable hive

我正在尝试将记录从 Hive 获取到新框架中的 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()) 
{
   System.out.println(res.getString(1) + "\t" + res.getString(2) + "\t" + res.getString(3));
}     

执行查询后,您将读取所有数据并将其显示在控制台上。

while (res.next()) {              
   row = new Vector(c);
   for(int i=1; i<=c; i++){
   row.add(res.getString(i));
   }
   data.add(row);
   }

然后您尝试将数据读入 vector 。问题是 ResultSet 中没有数据,因为您已经读取了所有数据。

摆脱第一个循环。

如果您想查看 ResultSet 的值,请将 System.out.println(...) 语句放入第二个循环中。

关于Java JTable 不显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32992860/

相关文章:

java - 卡在PostgreSQL上的多线程数据处理

java - 从弹出窗口上的主窗口访问变量

Java 在构造函数中实现 ActionListener 方法

java - 具有两种数据类型的 JTable 单元格

swing - JTable 行数限制

java - 无法在Debian上安装默认的jdk包

java - 如何从 Java 父类(super class)内部调用重写方法的父类(super class)实现?

java - 将大量 system.out.println 重定向到 .txt 文件

java - 如何在不关闭整个程序的情况下从 JTextFields 中清除变量?

java - JTable 单元格编辑器数字格式