如何使用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);
}
答
而不是使用像这样
rs.getString("user.name");
使用这个代替
rs.getString(1);
什么你试图做早期是由表的名字连同名称引用列,而是使用引用/列名称,或者可以按照在SELECT子句中使用它的顺序来引用它。
您可以基于SELECT
订单添加更多列。希望这可以帮助!
使用'rs.getString(1);'而不是? –
感谢兄弟。有效。 – Arunachalam