无法连接安卓设备到PostgreSQL数据库。

6
这是我在stackoverflow上的第一篇文章,希望我听起来不太能干。我遇到了一个问题,即连接我的Android应用程序与我创建的PostgresDB。我使用了这个教程中的代码http://appliedcoffeetechnology.tumblr.com/post/10657124340。尽管我修改了以下行中的字符串URL: String url = "jdbc:postgresql://192.168.1.101:5556/postgres?user=postgres&password=yeahright"; 我按照下载JDBC和将其添加到软件包的其他指示进行操作,我还添加了Internet权限行。
我已经配置了postgreSQL DB在Windows 7机器上允许连接,并设置传入连接为“信任”,以便密码不会阻碍连接。我还打开了Windows防火墙上的5556端口。我可以使用以下命令从我的Ubuntu笔记本电脑连接到它:psql 192.168.1.101 -U postgres -p 5556 -d postgres但是,在运行Android应用程序(在真实设备上)时,我得到了由conn = DriverManager.getConnection(url)调用引发的“java.sql.SQLException:没有合适的驱动程序”错误。
非常感谢您的帮助,如果需要其他有用的信息,请告诉我。Craig Ringer在下面提到了Web服务应用程序。起初我有些犹豫,因为我不想增加学习曲线的陡峭程度,但我决定使用Django,这非常简单。

安卓版本?目标设备? - Craig Ringer
在Galaxy S Tab2 10.1上运行Ice-Cream-Sandwich。 - Lokist
2个回答

3
据我所知,Android本身不支持JDBC。(更新:较新版本已经支持)。说实话,最好是运行一个Web服务,并通过Web服务请求使您的Android应用程序与数据库通信。在SO中搜索“android postgresql”以获取相关讨论。一些相关的讨论如下:

我时间比较紧,你知道有什么简单快捷的方法可以让我启动并运行吗?我很久没有设置过Web服务了,而且DB主机是Windows机器,通常意味着配置资源非常少。目前将有两个Android设备使用DB,查询/修改操作将相当分散。如果Web服务是唯一的选择,我也理解。 - Lokist
看了你列出的帖子之一(如何使用PostgreSQL在Java中创建webservice使用Apache Tomcat),你提到了JBoss AS 7、Jersey和RESTEasy。我猜如果我选择JBoss AS 7,那么就不需要再去研究Jersey或者RESTEasy了。这是正确的吗? - Lokist
@Lokist 很多人使用 PHP 等语言拼凑东西。选择一种已经熟悉的语言,并使用该语言的 REST 服务库构建一个项目。我发现在 Java 应用服务器上使用 JAX-RS 很容易;你可能更喜欢其他东西。搜索“REST”和你选择的语言可能会很有帮助。 - Craig Ringer

1
你收到的错误信息表明你没有将Postgres JDBC驱动程序jar文件复制到你的应用程序中。
话虽如此,直接连接远程数据库的SQL,甚至可能通过3G网络,可能无法提供您所需的性能。
如果你只需要在你的应用程序中存储一些东西的数据库,你应该看看嵌入式SQLite数据库。

.jar文件最终位于"引用的库"部分。我还应该查看其他地方来确定jar包是否已经包含在程序中吗?实际上,我将数据库存储在远程Windows服务器上,以便多个Android设备可以同时访问它。话虽如此,性能不应该是一个问题,每秒最多可能有10次查询。谢谢! - Lokist
请注意,这将仅通过WiFi进行。 - Lokist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接