您的位置:首页 > 编程语言 > Java开发

数据仓库(十三)--java--presto---SpringMVC使用presto查询hive

2018-03-06 16:32 459 查看
我们在之前的文章中已经学习过了presto的安装部署和连接hive使用。 并且在cli命令界面中进行了操作。

数据仓库(十)—分布式SQL查询引擎—presto安装部署和连接hive使用

不过我们最终的应用场景肯定是在可视化web中进行查询分析,所以有必要在web的框架中使用presto对hive进行查询。

因为我们一直用的比较多的都是SpringMVC框架,所以在这个基础上进行配置使用。

框架下载地址

SpringMVC+Shiro+MongoDB+BootStrap基础框架

官网参考文档

https://prestodb.io/docs/current/installation/jdbc.html

maven引入presto

找到项目的pom.xml文件加入代码

<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.196</version>
</dependency>


java代码中使用

IndexController.java

@RequestMapping("/")
public String index(Model model) throws IOException, SQLException, ClassNotFoundException {
Class.forName("com.facebook.presto.jdbc.PrestoDriver");
String url = "jdbc:presto://192.168.30.252:8080/hive/default";
Connection connection =  DriverManager.getConnection(url, "root", null);
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("show tables");
while (rs.next()) {
System.out.println(rs.getString(1));
}
String sql2 = "select * from genotype_pt limit 5";
ResultSet rs2 = stmt.executeQuery(sql2);
while(rs2.next()) {
String str = rs2.getString(1);
System.out.println(str);
}
rs.close();
connection.close();
return "/index";
}


注意:username和password并不会用来做验证,但是username必须填写,可以随意填写。

ResultSet转换为实体list

//rs是一个查询语句所返回的结果集

ResultSet rs=new ResultSet();
rs=pstmt.executeQuery();
//将rs逐条取出,并将每一项放在一个bean对应的值里
while(rs.next())
{
RecBean rec=new RecBean();
rec.setId(rs.getInt(1));
rec.setAgentNo(rs.getString(2));
rec.setFileName(rs.getString(3));
list.add(rec);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: