【问题标题】:connect to sql server from android从android连接到sql server
【发布时间】:2011-03-30 09:02:15
【问题描述】:

我目前正在开发一个现场服务应用程序,它将数据存储在 android 设备上的本地 sqlite 数据库中。在某些时候,通常在完成数据收集回合后,本地 sqlite db 将同步到服务器上的远程 sql server db,我还需要从 sql server db 更新一些本地表。

关于如何实现或设计作为解决方案的任何建议?或者更好的是,在这样的应用程序中同步数据是否有替代方法?

【问题讨论】:

  • 即使我在做同一个项目,如果你让代码工作,请告诉我

标签: android


【解决方案1】:

另一种更简单的方法是使用依赖于安全三层架构的虚拟 JDBC 驱动程序:您的 JDBC 代码通过 HTTP 发送到远程 Servlet,该 Servlet 过滤 JDBC 代码(配置和安全性),然后将其传递给MySql JDBC 驱动程序。结果通过 HTTP 发回给您。

有一些免费软件使用这种技术。只需谷歌“Android JDBC Driver over HTTP”。

【讨论】:

    【解决方案2】:

    我认为最好的方法是为您的应用程序使用 Web 服务或您自己的基于 TCP 的逻辑层之类的中介,以连接到 SQL 服务器并执行您的应用程序的请求。不要尝试直接从 Android 连接到您的 SQL 服务器。你可以写 您的服务器(或 Web 服务)上的一些后端代码,然后使用 Http 从您的 android 设备调用这些代码方法。

    * 中还有很多主题,例如您的:

    关于如何编写 Web 服务。这是一个很大的问题,你必须选择技术,有很多库、框架和平台可以帮助你简单地编写一个 Web 服务。您必须选择通信协议,它可能是 SOAP、WSDL 或者删除调用程序,也可能是其他应用程序。如果你使用java stack,目前有一些流行的框架:

    您可以从阅读什么是 Web 服务开始:

    还有一些链接提供了从 android 访问 Web 服务的示例:

    【讨论】:

    • 不确定 OP 正在寻找什么,但我希望就如何构建类似项目获得一些建议。我尝试使用 SOAP,但无法在 android 框架中进行 XML 解析?我尝试使用的所有库都很笨重,或者依赖于我无法导入的东西。
    • @Yamikuronue 恕我直言 SOAP 太慢了。我在 Android SQLite PostgreSQL 远程数据库同步项目中成功使用了Apache Thrift,并且工作起来就像一个魅力。
    【解决方案3】:

    您必须保留一个中间层在线服务器。它可以在您的应用程序和 MSSQL db 之间来回通信。可能是 servlet 或在 SQLite 和 SQL Server db 之间同步的请求处理程序。

    【讨论】: