如何使用JDBC从配置单元表中获取结构数据?

问题描述:

我想通过Java Swing应用程序为jfreechart可视化使用JDBC从Hive表中提取结构数据结构<>。在执行SQL查询时抛出一个SQLException错误,它在我得到的异常处引发(rs.getString(“user.name”))。请给我一个建议如何使用JDBC应用程序从配置单元表中获取结构数据?如何使用JDBC从配置单元表中获取结构数据?

String s1 = jTextField1.getText(); 
    String s2 = jTextField2.getText(); 
    String s3 = jTextField4.getText(); 
    try 
    { 
     Class.forName("org.apache.hive.jdbc.HiveDriver"); 
     Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/"+s1,"arunachalam",""); 
     Statement st = con.createStatement(); 
     String sql = "select user.name,user.followers_count c from "+s2+" order by c desc"; 
     ResultSet rs = st.executeQuery(sql); 
     DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
     while(rs.next()) 
     { 
      String name = rs.getString("user.name"); 
      int count = rs.getInt("user.followers_count"); 
      dataset.setValue(count,name,name); 
     } 
     JFreeChart chart = ChartFactory.createBarChart("Followers Count", "Screen Name", "Users Follower Count", dataset, PlotOrientation.VERTICAL, false, true, false); 
     CategoryPlot p = chart.getCategoryPlot(); 

     int width = 560; 
     int height = 370; 
     File bchart = new File("Chart.jpeg"); 
     ChartUtilities.saveChartAsJPEG(bchart , chart , width , height); 
    } 
    catch(Exception e) 
    { 
     showMessageDialog(null, e); 
    } 
+0

使用'rs.getString(1);'而不是? –

+0

感谢兄弟。有效。 – Arunachalam

而不是使用像这样

rs.getString("user.name"); 

使用这个代替

rs.getString(1); 

什么你试图做早期是由表的名字连同名称引用列,而是使用引用/列名称,或者可以按照在SELECT子句中使用它的顺序来引用它。

您可以基于SELECT订单添加更多列。希望这可以帮助!