您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何在Java中集成Presto查询

2025/7/6 22:39:06发布24次查看
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 */@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 { /** * 功能: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查询的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product