无法将 Android 连接到 PostgreSQL 数据库
Posted
技术标签:
【中文标题】无法将 Android 连接到 PostgreSQL 数据库【英文标题】:Can't connect Android to PostgreSQL DB 【发布时间】:2012-10-03 04:10:36 【问题描述】:这是我在 *** 上的第一篇文章,所以希望我听起来不会太无能。我在将我的 android 应用程序连接到我创建的 PostgresDB 时遇到问题。我使用了本教程中的代码http://appliedcoffeetechnology.tumblr.com/post/10657124340。尽管我将 String url ... 行修改为以下内容:
String url = "jdbc:postgresql://192.168.1.101:5556/postgres?user=postgres&password=yeahright";
我按照其他说明下载 JDBC 并将其添加到包中,还添加了 Internet 权限行。
我已经在我的 Windows 7 机器上配置了 postgreSQL DB 以允许连接,甚至将传入连接设置为“信任”,这样密码就不会妨碍。我还在 Windows 防火墙上打开了 5556 端口。我可以使用以下命令从我的 Ubuntu 笔记本电脑连接到它:psql 192.168.1.101 -U postgres -p 5556 -d postgres
但是,在运行 Android 应用程序(在真实设备上)时,conn = DriverManager.getConnection(url)
调用会引发“java.sql.SQLException:没有合适的驱动程序”。
非常感谢您的帮助,如果我能提供任何其他有用的信息,请告诉我。
Craig Ringer 下面提到了一个网络服务应用程序。起初我很犹豫,因为我不想让我的学习曲线变得更陡峭,但我决定使用 Django,它非常简单。
【问题讨论】:
安卓版本?目标设备? 在 Galaxy S Tab2 10.1 上运行冰淇淋三明治 【参考方案1】:AFAIK Android 本身不支持 JDBC。 (更新:较新的版本可以)。老实说,您WAY最好运行一个 Web 服务并让您的 Android 应用通过 Web 服务请求与 DB 进行通信。
搜索“android postgresql”。
一些相关讨论:
Android OS and postgreSQL How to create webservice in java using apache tomcat using PostgreSQL Driver JDBC PostgreSQL with Android How can I securely (indirectly) query a postgresql database within android? PostgreSQL JDBC connection fails on Android 4.0【讨论】:
我的时间有点紧,你知道我在哪里可以得到一些简单的东西并运行吗?好久没搭建webservice了,db主机是windows机器,一般来说配置资源很少。目前将有两个 Android 设备使用数据库,并且查询/修改将相距甚远。如果网络服务是唯一的出路,我理解。 查看您上面列出的帖子之一(如何使用 PostgreSQL 使用 apache tomcat 在 java 中创建 Web 服务)您提到了 JBoss AS 7、Jersey 和 RESTEasy。我假设如果我使用 JBoss AS 7,那么我不需要研究 Jersey 或 RESTEasy。对吗? @Lokist 很多人用 php 等来破解东西。选择一种已经熟悉的语言并使用该语言的 REST 服务库构建一些东西。我发现 Java 应用服务器上的 JAX-RS 很容易;你可能更喜欢别的东西。搜索“REST”和您选择的语言可能会提供信息。【参考方案2】:您收到的错误消息表明您没有将 postgres jdbc 驱动程序 jar 复制到您的应用程序中。
话虽如此,直接 SQL 连接到远程数据库甚至可能通过 3g 网络可能无法提供您想要的性能。
如果您的应用程序中只需要一个数据库来存储一些东西,您应该查看嵌入式 SQLite 数据库。
【讨论】:
.jar 文件最终位于“引用库”部分中。还有什么我应该看的东西来确定 jar 是否将它放入包中?我实际上将数据库存储在远程 Windows 服务器上,以便多个 Android 设备可以同时访问它。话虽如此,性能确实不应该成为问题,也许每秒最多 10 个查询。谢谢! 仅供参考,这将仅通过 WiFi 进行。以上是关于无法将 Android 连接到 PostgreSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Android Studio 连接到我的手机或 Bluestacks
无法通过 BLE 将 Android 应用程序连接到 Raspberry Pi 3
无法将 Nexus One 手机连接到 Android adb