我正在运行Netbeans 8.0.2。我正在学习JDBC并希望将它连接到PostgreSQL数据库。我查找了所有可能的答案,但没有答案使它成功。
我还选择了左侧菜单中的库PostgreSQL JDBC Driver -postgresql-9.2-1002.jdbc4.jar
显示的错误是:
SQL exception occuredjava.sql.SQLException:找不到合适的驱动程序 对于Jdbc:postgresql:// localhost:5432 / postgres
以下是代码:
try {
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e) {
System.out.println("Class not found "+ e);
}
try {
Connection con = DriverManager.getConnection
("Jdbc:postgresql://localhost:5432/postgres","postgres",
"gautam");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery
("SELECT * FROM role");
System.out.println("id name");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println(id+" "+name);
}
}
catch(SQLException e){
System.out.println("SQL exception occured" + e);
}
答案 0 :(得分:1)
我很快就尝试了你的代码并且首先得到了同样的错误:
通过更正:DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres","gautam");
它有效。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class NewClass {
public void initialize() {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Class not found " + e);
}
try {
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres","gautam");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM role");
System.out.println("id name");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println(id + " " + name);
}
} catch (SQLException e) {
System.out.println("SQL exception occured" + e);
}
}
public static void main(String[] args) {
new NewClass().initialize();
}
}
DriverManager
询问注册到它的每个驱动程序是否可以读取URL:“jdbc:postgresql:// localhost:5432 / postgres”。
第一个返回{{1的驱动程序使用。
在你的情况下没有驱动程序返回true。
返回true或false的驱动程序的方法是true
您可以使用以下方法进行测试:
acceptsURL("jdbc:postgresql://localhost:5432/postgres")
答案 1 :(得分:1)
我正在使用NetBeans 11.1 我有与该线程标题相同的错误消息。 我能够在Linux命令行上编译并运行Java代码。
两天以来,我一直忽略了NetBeans中的以下错误消息。我没有将此错误消息与我的问题联系起来:
跳过不存在的resourceDirectory / home / thatsme / NetBeansProjects / myproject / src / main / resources
从那时起,我的代码在NetBeans中也可以正常运行。我知道,这是一个非常特殊的错误,但也许也会帮助另一个错误。只想在这里给些东西。
编辑: 我在ORACLE文件ojdbc8.jar中遇到了同样的问题,而我上面提到的解决方案没有帮助。但是,在我解压缩ojdbc8.jar后,它运行良好。
$ jar xf ojdbc8.jar
如果我在Netbeans / Maven之外运行我的应用程序,那么它也可以与CLASSPATH中的打包版本一起使用。