返回顶部
首页 > 资讯 > 后端开发 > Python >Java集成presto查询方式
  • 653
分享到

Java集成presto查询方式

2024-04-02 19:04:59 653人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录Java集成presto查询1.pom文件引入相关jar2.application.yml配置presto相关3.获取连接与测试Java程序访问prestopom.xml中引入p

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;

@Configuration
public 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

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();
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java集成presto查询方式

本文链接: https://lsjlt.com/news/151990.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java集成presto查询方式
    目录Java集成presto查询1.pom文件引入相关jar2.application.yml配置presto相关3.获取连接与测试Java程序访问prestopom.xml中引入p...
    99+
    2024-04-02
  • Java怎么集成presto查询
    本文小编为大家详细介绍“Java怎么集成presto查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么集成presto查询”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Java集成presto查询1...
    99+
    2023-07-02
  • MySQL 查询 并集、交集、差集方式
    目录mysql查询交集、并集、差集背景和使用的数据样本基本语法注意事项总结MySQL查询交集、并集、差集 背景和使用的数据样本 该章节学些主要涉及到Datawhale SQL 组队学习任务; 本次使用的数据,由Dataw...
    99+
    2023-02-07
    MySQL查询并集 MySQL查询交集 MySQL查询差集
  • MySQL 查询 并集、交集、差集方式
    目录MySQL查询交集、并集、差集背景和使用的数据样本基本语法注意事项总结MySQL查询交集、并集、差集 背景和使用的数据样本 该章节学些主要涉及到Datawhale SQL 组队学...
    99+
    2023-02-07
    MySQL查询并集 MySQL查询交集 MySQL查询差集
  • MySQL查询 并集、交集、差集方式
    MySQL查询并集、交集、差集可以通过使用UNION、INTERSECT和EXCEPT(或MINUS)操作符来实现。1. 并...
    99+
    2023-08-09
    MySQL
  • SQL基础查询和LINQ集成化查询
    SELECT SELECT 语句用于从表中选取数据,是 SQL 最基本的操作之一。 通过 SELECT 查询的结果被存储在一个结果表中(称为结果集)。 SQL SELECT ...
    99+
    2024-04-02
  • MySQL查询并集、交集、差集的方式是什么
    在MySQL中,可以使用以下方式查询并集、交集和差集:1. 并集(UNION):使用UNION关键字将两个或多个查询结果合并为一个结果集。例如,查询表A和表B的并集:```SELECT * FROM AUNIO&...
    99+
    2023-08-09
    MySQL
  • Linq组合查询怎么集成数据库语言查询
    本篇内容主要讲解“Linq组合查询怎么集成数据库语言查询”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq组合查询怎么集成数据库语言查询”吧!通常来讲,Linq组合查询提供了一条很常规的途径...
    99+
    2023-06-17
  • SQL基础查询和LINQ集成化查询是怎样的
    SQL基础查询和LINQ集成化查询是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SELECTSELECT 语句用于从表中选取数据,是 SQL 最...
    99+
    2023-06-26
  • Java之Mybatis多层嵌套查询方式
    目录Mybatis多层嵌套查询表的存储sql文件实体类XMLMybatis多层嵌套查询(多对多)依赖实体类Setmeal实体类CheckGroup实体类CheckItemmapper...
    99+
    2024-04-02
  • LINQ(语言集成查询)使用案例
    概念 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外...
    99+
    2024-04-02
  • java Web报表集成的方式是什么
    本篇内容主要讲解“ java Web报表集成的方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ java Web报表集成的方式是什么”吧!一般问这个问题的都是想咨询有没有和.net 平台...
    99+
    2023-06-03
  • MySQL中的流式查询及游标查询方式
    目录一、业务场景二、罗列一下三种处理方式2.1 常规查询2.2 流式查询2.3 游标查询三、RowData3.1 RowDataStatic3.2 RowDataDynamic3.3 RowDataCursor四、JDB...
    99+
    2022-08-17
    MySQL查询 流式查询 游标查询 MySQL游标
  • mysql锁查询方式
    下面讲讲关于mysql锁查询方式,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql锁查询方式这篇文章你一定会有所受益。select  IFNULL(w...
    99+
    2024-04-02
  • SpringBoot2.6.3集成quartz的方式
    quartz使用 quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到 如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知...
    99+
    2024-04-02
  • 的集成最佳方式
    通过将 sass 与 bootstrap 集成,你可以充分利用这两种工具的强大功能, 创建时尚且可扩展的 web 界面。步骤如下:安装 sass 和 bootstrap创建 sass 文...
    99+
    2024-04-13
    java php css bootstrap
  • JPA CriteriaBuilder子查询方式
    目录JPA CriteriaBuilder子查询Jpa 在CriteriaBuilder中添加where条件NotIn子查询JPA CriteriaBuilder子查询 给...
    99+
    2024-04-02
  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
    mysql子查询 子查询分为: 列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表:...
    99+
    2023-09-04
    mysql sql 数据库
  • Springboot集成swagger实现方式
    Swagger 提供了一个全新的维护 API 文档的方式,有4大优点: 自动生成文档:只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文...
    99+
    2024-04-02
  • MySQL中流式查询及游标查询的方式是什么
    这篇文章主要讲解了“MySQL中流式查询及游标查询的方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中流式查询及游标查询的方式是什么”吧!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作