2010-08-16 122 views
12

我目前正在開發一個Field-Service應用程序,它將數據存儲在android設備上的本地sqlite數據庫中。在某些時候,通常在完成數據收集之後,本地sqlite數據庫將被同步到服務器上的遠程sql服務器數據庫,同時我需要從sql服務器數據庫更新一些本地表。從android連接到sql server

有關如何實現或設計爲解決方案的任何建議?或者更好的是,在這種應用程序中是否有其他同步數據的選擇?

+0

即使在做同樣的項目,讓我知道如果你得到的代碼工作 – VenomVendor 2012-05-24 18:05:22

回答

18

我認爲最好的方式是使用中介,如Web服務或您自己的基於TCP的邏輯層爲您的應用程序連接到SQL服務器並執行您的應用程序的請求。不要試圖直接從Android連接到您的SQL服務器。您可以在您的服務器(或webservice)上編寫 一些後端代碼,然後使用Http從Android設備調用這些代碼方法。

而且也有很多主題在計算器喜歡你:

關於如何編寫Web服務。這是一個很大的問題,您必須選擇技術,有很多庫,框架和平臺可以幫助您簡單編寫Web服務。您必須選擇通信協議,它可能是SOAP,WSDL或者可能刪除調用過程,它可能是其他應用程序。如果您使用的Java堆棧,還有一些流行框架的時刻:

您可以從閱讀開始什麼是Web服務是:

也有一些鏈接,其提供從Android的訪問Web服務的例子:

+1

不知道OP是在找什麼,但我希望有關如何構建類似項目的建議。我嘗試使用SOAP,但我無法獲得XML解析在Android框架中工作?我試圖使用的所有圖書館都很笨重,或者依賴於我無法導入的東西。 – Yamikuronue 2012-05-31 12:26:20

+0

@Yamikuronue恕我直言,SOAP太慢了。我在Android SQLite <-> PostgreSQL遠程數據庫同步項目中成功使用了[Apache Thrift](http://thrift.apache.org/),並且像魅力一樣工作。 – m0skit0 2013-07-14 17:24:44

0

你將不得不保持一箇中間層的在線服務器。它可以在你的應用程序和MSSQL數據庫之間來回通信。可以是servlet或同步的請求處理程序補間SQLite和SQL Server數據庫。

0

另一個更簡單的方法是使用依賴於安全三層體系結構的虛擬JDBC驅動程序:您的JDBC代碼通過HTTP發送到遠程Servlet,在通過它之前過濾JDBC代碼(配置&安全性)到MySql JDBC驅動程序。結果通過HTTP發回給您。

有一些免費的軟件使用這種技術。只需谷歌「通過HTTP的Android JDBC驅動程序」。