文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java怎么集成presto查询

2023-07-02 11:28

关注

本文小编为大家详细介绍“Java怎么集成presto查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么集成presto查询”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Java集成presto查询

1.pom文件引入相关jar

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

2.application.yml配置presto相关

presto:  url: xxxxxx  username: root  password: root  port: 8088

3.获取连接与测试

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.sugon.xuanyuan.common.utils.StringUtils;import com.sugon.xuanyuan.service.dataprovider.utils.JdbcUtil;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import java.sql.*;import java.util.Properties;@Configurationpublic class PrestoConnect {    @Value("${presto.url}")    private String server;    @Value("${presto.port}")    private String port;    @Value("${presto.username}")    private String username;    @Value("${presto.password}")    private String password;    private Connection getConnection() throws Exception {                String jdbcurl = "jdbc:presto://" + server + ":" + port + "/";        Connection conn ;        Properties props = new Properties();        Class.forName("com.facebook.presto.jdbc.PrestoDriver");        props.setProperty("user", username);        if (StringUtils.isNotBlank(password)) {            props.setProperty("password", password);            props.setProperty("SSL", "true");            //props.setProperty("SSLTrustStorePath", SSLTrustStorePath);            //props.setProperty("SSLTrustStorePassword", SSLTrustStorePassword);            jdbcurl = String.format("jdbc:presto://%s:%s/", server, port);        }        conn = DriverManager.getConnection(jdbcurl, props);                conn.setCatalog("hive");        return conn;    }    public JSONArray getDataAll(String sql)            throws Exception {        JSONArray array = new JSONArray();        Statement ps = null;        ResultSet rs = null;        Connection con = null;        try {            con = getConnection();            ps = con.createStatement();            rs = ps.executeQuery(sql);            // 获取列数            ResultSetMetaData metaData = rs.getMetaData();            int columnCount = metaData.getColumnCount();            // 遍历ResultSet中的每条数据            while (rs.next()) {                JSONObject jsonObj = new JSONObject();                // 遍历每一列                for (int i = 1; i <= columnCount; i++) {                    String columnName = metaData.getColumnLabel(i);                    String value = StringUtils.isBlank(rs.getString(columnName)) ? "" : rs.getString(columnName);                    jsonObj.put(columnName, value);                }                array.add(jsonObj);            }        } catch (Exception e) {            throw new Exception("ERROR:" + e.getMessage(), e);        } finally {            //关闭资源(先开后关)            JdbcUtil.close(rs, ps, con);        }        return array;    }}

Java程序访问presto

Java怎么集成presto查询

pom.xml中引入presto-jdbc

<dependency><groupId>com.facebook.presto</groupId><artifactId>presto-jdbc</artifactId><version>0.267</version></dependency>
package presto; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement; public class PrestoJdbcDemo {    public static void main(String[] args) throws  Exception{        //class.forname        try {            Class.forName("com.facebook.presto.jdbc.PrestoDriver");        }catch (ClassNotFoundException e){            e.printStackTrace();        }        //若presto没有设置SSL认证,只需填写用户名,不需要填写密码。        Connection connection = DriverManager.getConnection("jdbc:presto://localhost:8080/mysql/tp_music","root",null);        Statement stmt = connection.createStatement();        ResultSet rs = stmt.executeQuery("select * from mysql.tp_music.singer limit 3");        while (rs.next()) {            System.out.println("name:"+rs.getString(2)+"  birth:"+rs.getString(5)+"  location:"+rs.getString(6));        }        rs.close();        connection.close();    }}

读到这里,这篇“Java怎么集成presto查询”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯