【问题标题】:Driver JDBC PostgreSQL with Android [duplicate]带有Android的驱动程序JDBC PostgreSQL [重复]
【发布时间】:2012-05-13 05:13:34
【问题描述】:

我正在尝试使用 JDBC 驱动程序将我的 android 应用程序连接到服务器 (PostgreSQL),但出现此错误:

java.lang.ClassNotFoundException: org.postgresql.Driver
...
Caused by: java.lang.NoClassDefFoundError: org/postgresql/Driver
... 12 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
...
java.sql.SQLException: No suitable driver

我尝试了很多东西,比如在路径中添加驱动程序的地址,但没有任何效果。我遵循了本教程: http://appliedcoffeetechnology.tumblr.com/post/10657124340 并在构建路径中添加了驱动程序 JDBC4(我也尝试了 JDBC3)。

大家可以帮帮我吗?

【问题讨论】:

  • 我喜欢这个演示文稿,可惜没有最高级分辨率的示例代码(使用帐户 API)...
  • 如果您使用的是 Android SDK r17 或更高版本,请确保将 jdbc jar 放在 libs/ 文件夹中。 SDK 现在会自动将其添加到类路径中(您无需手动将其添加到自己的构建路径中)。
  • 好的,这是一个有趣的演示文稿,但它无法解决我在代码中的识别问题。关于为什么找不到我的驱动程序的任何想法?

标签: java android postgresql jdbc


【解决方案1】:

虽然不是对您问题的严格回答,但我确实有一个建议。

不要尝试直接在 Android 设备上使用 JDBC。这样你会省去很多麻烦。 I wrote about that in more detail on the "JDBC vs Web Service for Android" question.

在可通过 Web 访问的应用程序服务器上编写您的数据库逻辑,并通过 HTTP+JSON、SOAP、XML-RPC 或类似方式与该应用程序服务器通信。这将大大提高带宽效率,并且您可以使您的应用程序更能容忍连接问题。它还使您不必将数据库服务器直接暴露在 Internet 上 - 只要您使用 SSL,PostgreSQL 就不必担心,但最好根本不必这样做。

在 JBoss AS 7、Tomcat 7 或类似系统上使用 JAX-RS,您应该能够非常轻松地为您的应用程序组合一个 Web RESTful XML/JSON 服务 API。人们似乎还可以很快地将 REST/JSON API 与 PHP 组合在一起。

您可以使用几乎任何您喜欢的语言轻松地编写 JSON/REST Web API。只需搜索REST server yourlanguagename

“Kaw”在已删除的答案中指出,还有虚拟 JDBC 驱动程序通过 HTTP 隧道请求。这些可能适用于某些应用程序。

【讨论】:

  • 好的,谢谢你的精确:)
  • 你是对的;这不是问题的答案。有时直接连接到数据库是合适的,即使您不这么认为。此外,特别是 Postgres 具有非常强的安全性,因此通常的端口暴露问题不相关。
  • @RichardT 自从我写这篇文章以来,Android 已经取得了进展,但我仍然认为通过 Web 服务几乎总是正确的答案。即使您只是在一个具有良好 WiFi 的区域内,处理 JDBC 连接中的停顿和丢失仍然是一件痛苦的事情。将无状态的东西与幂等请求一起使用会更好,因此如果花费的时间太长,您可以重新发出它。我仍然想要这个问题的正确答案。
  • 看起来仍然不像问题的答案......
  • @Regis Google。 “CRUD REST API [我的首选编程语言]”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 2018-07-11
  • 2012-12-01
  • 1970-01-01
相关资源
最近更新 更多