2017-10-11 77 views
0

我想通過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

回答

0

而不是使用像這樣

rs.getString("user.name"); 

使用這個代替

rs.getString(1); 

什麼你試圖做早期是由表的名字連同名稱引用列,而是使用引用/列名稱,或者可以按照在SELECT子句中使用它的順序來引用它。

您可以基於SELECT訂單添加更多列。希望這可以幫助!

相關問題