我是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添加为库。
问题是,如屏幕截图所示,将驱动程序添加为库没有效果。
所以我的问题是:如何使用Java和最新的IntelliJ连接到PostgreSQL数据库?
任何帮助将不胜感激。
更新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: 我已经解决了所有问题。
答案 0 :(得分:1)
似乎您的项目依赖项中缺少postgres jar文件。
如果缺少postgres依赖项:
您的代码现在应该运行了。让我知道是否有帮助。
注意:请在GitHub上提供您的最低限度的工作代码,以加快响应速度。
答案 1 :(得分:0)
主要问题是我使用命令行参数作为数据库URL,而没有给它加上前缀 jdbc:postgresql://
。另外,由于某些奇怪的行为,我不得不重新安装postgresql,我无法找出原因。
答案 2 :(得分:0)
这是URL语法不正确时收到的消息。
This是必需的。