如何在java代码中使用Amazon Web Services连接到postgresql数据库实例?

时间:2014-04-21 18:17:31

标签: java sql database postgresql amazon-web-services

我最近使用Amazon Web Services创建了一个帐户 - 希望能够访问postgresql中的24/7数据库。但是,关于如何使用直接java代码连接到postgresql数据库实例的文档很少。所以我的问题是,我将如何连接到我的数据库?请具体说明。一些.getConnection代码会有所帮助。然后再次。我想使用JAVA代码。没有扩展或工具包。

继承了一些连接代码:

try {
        Properties props = new Properties();
       //Uncomment the following line if using a keystore.
       props.setProperty("ssl", "true");  
       props.setProperty("user", "BruceWayne");
       props.setProperty("password", "password");
       connection = DriverManager.getConnection("jdbc:postgresql://batcomputer.cu2oezud659w.us-west-2.rds.amazonaws.com:5432",props);

    } catch (SQLException e) {

        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;

    }

我的猜测是问题出现在“连接”的位置。

这是终端的错误:

1291-121-25:SQLGUI student$ javac -cp postgresql2.jar:. JDBCExample.java
1291-121-25:SQLGUI student$ java -cp postgresql2.jar:. JDBCExample
-------- PostgreSQL JDBC Connection Testing ------------
PostgreSQL JDBC Driver Registered!
Connection Failed! Check output console
java.sql.SQLException: No suitable driver found for jdbc:postgresql://batcomputer.cu2oezud659w.us-west-2.rds.amazonaws.com:5432
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at JDBCExample.main(JDBCExample.java:38)

任何帮助都非常感谢!!!

1 个答案:

答案 0 :(得分:3)

如果没有"扩展或工具包",您无法轻松连接到PostgreSQL(或任何其他数据库)。具体来说,唯一明智的做法是use JDBC。 JDBC接口本身是Java的一部分,但连接到单个数据库需要特定于数据库的驱动程序

对于PostgreSQL,那是PgJDBC

所以你真的需要:

JDBC教程解释了如何使用JDBC。 PgJDBC文档解释了PostgreSQL特定位的详细信息,例如用于连接PostgreSQL的JDBC URL。它也包含示例代码。

在您确保PgJDBC在您的类路径上之后,连接(不对连接做任何事情)就像这样简单:

public void donothing() throws SQLException, ClassNotFoundException
{
    Class.forName("org.postgresql.Driver");
    String url = "jdbc:postgresql://localhost/test?user=fred&password=secret&ssl=true";
    Connection conn = DriverManager.getConnection(url);
    // Do stuff here
    conn.close();
}