"; } ?> 我保存了上面的php文件并按以下方式执行。 myuser@ip-20-143--6ren">
gpt4 book ai didi

java - 在redshift上执行java程序

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:50 25 4
gpt4 key购买 nike

例如,我编写了以下 php 代码并在 redshift 上运行,如下所示。

<?php

$connect = pg_connect("host=xx.xxxx.us-east-1.redshift.amazonaws.com port=xxxx dbname=testdb user=xxxx password=xxxxxx");

$query = "select name, email from mytable LIMIT 7";
$result = pg_query($connect,$query);
while(($row = pg_fetch_array($result)) != null) {
$name = $row[0];
$email = $row[1];

echo $name." <<>> ".$email." <<>> ";
}
?>

我保存了上面的php文件并按以下方式执行。

myuser@ip-20-143-43-144:/home/myuser$ php runquery.php     <Enter>

然后它给我输出。

我想用java测试同样的事情。因此,我从 aws 中获取了示例并将其保存在同一位置。

public class ConnectToCluster {

static final String dbURL = "jdbc:postgresql://xxxx.xxxxx.us-east-1.redshift.amazonaws.com:xxxx/testdb";
static final String MasterUsername = "XXXX";
static final String MasterUserPassword = "XXXXXX";

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//Dynamically load postgresql driver at runtime.
Class.forName("org.postgresql.Driver");

//Open a connection and define properties.
System.out.println("Connecting to database...");
Properties props = new Properties();

//Uncomment the following line if using a keystore.
//props.setProperty("ssl", "true");
props.setProperty("user", MasterUsername);
props.setProperty("password", MasterUserPassword);
conn = DriverManager.getConnection(dbURL, props);

//Try a simple query.
System.out.println("Listing system tables...");
stmt = conn.createStatement();
String sql;
sql = "select * from information_schema.tables;";
ResultSet rs = stmt.executeQuery(sql);

//Get the data from the result set.
while(rs.next()){
//Retrieve two columns.
String catalog = rs.getString("table_catalog");
String name = rs.getString("table_name");

//Display values.
System.out.print("Catalog: " + catalog);
System.out.println(", Name: " + name);
}
rs.close();
stmt.close();
conn.close();
}catch(Exception ex){
//For convenience, handle all errors here.
ex.printStackTrace();
}finally{
//Finally block to close resources.
try{
if(stmt!=null)
stmt.close();
}catch(Exception ex){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
System.out.println("Finished connectivity test.");
}
}

我也将这个 .java 文件保存在同一位置。那么,有人可以告诉我如何按照命令运行这个 java 文件,就像我对 php 所做的那样。

最佳答案

(1) 从以下链接下载postgresql JDBC驱动程序并将其放在ConnectToCluster.java的同一目录中。

(2) 在java文件的头部添加缺少的行(导入java库)。

 import java.sql.*;
import java.util.*;

public class ConnectToCluster {
...

(3) 运行以下命令。

 javac ConnectToCluster.java && java -cp .:postgresql-8.4-703.jdbc4.jar ConnectToCluster 

关于java - 在redshift上执行java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com