如何在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; /** * @Description: * @author: luoy * @date: 2020-06-24 09:45 */ @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 { /** * 功能:presto 通过 jdbc 连接 * 示例:jdbc:presto://host:port/ **/ 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); /*设置连接的数据源类型 * 示例:mysql、hive */ 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>
登录后复制
/** * @ Author zhangsf * @CreateTime 2022/1/6 - 10:00 PM */ 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查询的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4
