2017-10-11 10 views
0

jfreechartの視覚化のためのJava Swingアプリケーション経由で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(1); 

は、テーブル名と一緒に名前の欄を参照してくださいすることでした。この

rs.getString("user.name"); 

使用のように使用して、代わりに参照/列名を使用するか、SELECT句で使用される順序で参照することができます。

SELECTオーダーに基づいて列を追加できます。お役に立てれば!

関連する問題