21

我在 Windows 上运行 Eclipse。

按照本教程,我下载了 JDBC4,使用 Project>Properties>add External JAR 将其添加到我的构建路径中,浏览了文件,它工作(.classpath文件显示了正确的 lib 路径)。

该包出现在我的 Referenced Libraries 文件夹中,因此我继续本教程。

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

    ....

    public void open ()
        {
    try {
        Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        conn = DriverManager.getConnection(url, username, password);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

我认为它会像那样简单,但是我被这个长长的堆栈跟踪击中了

    java.lang.ClassNotFoundException: org.postgresql.Driver

(如果需要我可以提供更多)

我试过include org.postgresql.*;了,但这也没有帮助。我也尝试过 JDBC3,但也没有运气。

我查看了带有 Android 的 Driver JDBC PostgreSQL,它提供了一个模糊的答案,说我最好只使用 HTTP+JSON。我从未使用过。

我对 Android、postgresql、Web 开发是全新的,所以一个简单的答案将不胜感激。

4

8 回答 8

19

您需要在项目中添加 PostgreSQL JDBC 驱动程序,如search.maven.org中所述。

摇篮

implementation 'org.postgresql:postgresql:42.2.10'

马文

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.2.10</version>
</dependency>

您还可以下载JAR并手动导入到您的项目中。

注意:不推荐使用此答案中使用的编译。替换为按照3的实现。

于 2016-06-08T20:43:30.323 回答
4

将jar包放入lib文件夹(WebContent-WEB-INF-lib),右键jar包-构建路径-添加构建路径

于 2014-03-17T09:44:46.883 回答
0

It's a CLASSPATH issue; the PostgreSQL JDBC driver isn't available when the class loader tries to load it. You need to add it to your CLASSPATH correctly.

If it works in Eclipse, it's because adding a JAR to the build path is adding it to the CLASSPATH. You have to understand how CLASSPATH works without the Eclipse training wheels to help you.

于 2012-06-05T19:23:31.413 回答
0

下载 JDBC JAR 文件并将其添加到您正在使用的工具的构建路径中可能是一个临时解决方案,因为在我的情况下,上述解决方案都没有解决。

于 2015-03-14T14:32:29.673 回答
0

在我对项目进行一些开发之前,我的 postgresql 驱动程序运行良好:添加了一些新文件,包括映射器文件,因为我使用了 Spring 和 MyBatis。突然,当我尝试在服务器--tomcat 上运行它时--我得到了无法加载org.postgresql.Driver 的错误。

我的情况的解决方案:重新启动 Eclipse。也许在某些方面,Eclipse 与驱动程序失去了联系。所以需要通过重启来刷新它。

于 2021-08-10T12:38:15.293 回答
0

我遇到了同样的问题;但我犯的错误是我只在插件部分添加了 postgre 依赖项;将 postgre 依赖项(以下)添加到项目依赖项部分后,它就可以工作了。

<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>    
</dependency>
于 2018-07-13T12:02:30.673 回答
0

我为gradel尝试了一百万件事,我只需要将这一行添加到build.gradel文件中。

dependencies {
    compile group: 'org.postgresql', name: 'postgresql', version: '42.2.1'
}
于 2020-07-14T19:14:00.707 回答
-2

假设您的依赖项已正确配置(请参阅libsAndroid SDK 版本 17 或更高版本中的目录,如评论中所指出的),您应该能够通过在驱动程序管理器中显式注册 9.2 驱动程序来使其工作。

代替:

Class.forName("org.postgresql.Driver");

利用:

DriverManager.register(new org.postgresql.Driver());

(我也尝试过使用 9.3-1100-jdbc41 jar,但这不起作用。)

请注意,正如Craig Ringer 在对重复问题的回答中所解释的那样,在Android 中使用 JDBC 并不是一个好主意,因为 JDBC 连接不太适合 Android 设备通常使用的网络使用模式。

于 2014-02-16T15:03:13.513 回答