IntelliJ-连接到PostgreSQL时出现问题

时间:2019-05-06 22:01:57

标签: java postgresql intellij-idea

我是PostgreSQL的新手(我通常使用其他数据库引擎),而且我也不经常使用Java。

我的问题是出现以下异常:

java.sql.SQLException: No suitable driver found for DATABASE_NAME
 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
    at
 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)

我遵循了本教程http://www.postgresqltutorial.com/postgresql-jdbc/connecting-to-postgresql-database/,并将postgresql-42.2.5.jar添加为库。

enter image description here

问题是,如屏幕截图所示,将驱动程序添加为库没有效果。

所以我的问题是:如何使用Java和最新的IntelliJ连接到PostgreSQL数据库?

任何帮助将不胜感激。

更新1: enter image description here

更新2: 由于已请求代码:我已用会导致错误的最小代码替换了原始代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class IngestData
{
    protected static String url;
    protected static final String user = "user";
    protected static final String password = "password";

    public static void main(String[] args)
    {
        Connection connection = null;
        url = args[args.length-1];
        try
        {
            connection = DriverManager.getConnection(url, user, password);
            System.out.println("SUCCESS");

        } catch (SQLException e)
        {
            System.out.println("ERROR");
            e.printStackTrace();
        }
    }
}

控制台输出为:

ERROR
java.sql.SQLException: No suitable driver found for http://127.0.0.1:10282/db01617792
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at IngestData.main(IngestData.java:17)

Process finished with exit code 0

以下是包含代码的git存储库的链接: https://github.com/ka6555/StackOverflow-Postgresql-Problem.git

更新3: 我发现了错误:

我需要更改

protected static String url;

protected static String url = "jdbc:postgresql://";

url = args[args.length-1];

url += args[args.length-1];

虽然这解决了我原来的问题,但该程序现在被卡在执行以下行:

connection = DriverManager.getConnection(url, user, password);

没有错误,但是程序将像永无休止的循环那样运行,永远不会超出此代码行。

更新4: 我已经解决了所有问题。

3 个答案:

答案 0 :(得分:1)

似乎您的项目依赖项中缺少postgres jar文件。

  • 打开项目结构(在Windows上为Ctrl + Alt + Shift + S)
  • 选择模块/依赖项标签
  • 您应该看到类似以下的内容:

enter image description here

如果缺少postgres依赖项:

  • 按一下屏幕截图右侧的+号
  • 选择库/项目库和您的postgres jar文件

您的代码现在应该运行了。让我知道是否有帮助。

注意:请在GitHub上提供您的最低限度的工作代码,以加快响应速度。

答案 1 :(得分:0)

主要问题是我使用命令行参数作为数据库URL,而没有给它加上前缀 jdbc:postgresql:// 。另外,由于某些奇怪的行为,我不得不重新安装postgresql,我无法找出原因。

答案 2 :(得分:0)

这是URL语法不正确时收到的消息。

This是必需的。