2010-08-05 70 views
8

是否有任何示例?我有我的Android應用程序,我需要連接到我的機器上的MySQL服務器,最好的方法是什麼?如何將Android連接到數據庫服務器

我不應該使用JDBC,說明這裏

從來就不曾使用的數據庫驅動程序通過互聯網連接,任何數據庫,在任何平臺,任何客戶端,任何地方。這對移動設備來說是雙倍的數據庫驅動程序專爲LAN操作而設計,不適用於片狀/間歇性連接或高延遲。

而應該去:

DefaultHttpClient httpclient = new DefaultHttpClient(); 

但在如何打開連接或執行一個簡單的SQL語句沒有例子。 任何人都可以幫助我?

回答

9

您應該使用Web服務或實現HTTP處理程序並以RESTful方式傳輸。

0

您將無法使用HttpClient直接連接到MySQL數據庫,因爲MySQL數據庫無法在該協議上運行。

對連接問題的答案的第二部分建議與Web服務一起使用並使用它們與數據庫服務器進行通信。這正是你能用HttpClient完成的事情。

+0

所以不可能使用HttpClient連接到Mysql,所以如果我既不能使用jdbc也不使用HttpClient,應該使用什麼呢? – Alex 2010-08-05 22:48:33

+2

您可以使用HttpClient,您只需編寫一個可以處理移動設備和數據庫之間信息的Web應用程序。一個RESTful Web服務可以做你想做的事。 http://www.ibm.com/developerworks/cn/webservices/library/ws-restful/ – LizB 2010-08-05 23:03:34

+0

但是,似乎我需要一個Web服務器作爲中間層,是否正確? – Alex 2010-08-05 23:39:04

2

爲了連接到MySQL服務器,你需要一個MySQL客戶端。 Android不附帶任何MySQL庫。您可能能夠使用通用的Java MySQL庫並將其與Android配合使用,但這將是一項艱鉅的任務並浪費時間。

您指出的鏈接已經告訴您,您嘗試執行的操作首先是錯誤的。不要通過互聯網連接到數據庫!您需要在您的服務器上響應HTTP請求,查找數據庫中的數據並通過HTTP將它們發回。該鏈接已經提到了幾個選項。你甚至可以自己寫一些東西,儘管使用現有的解決方案最容易,而不是試圖讓自己的方法安全和防止黑客攻擊。

0

如果您需要在多部手機之間共享數據,我會建議將其公開爲網絡服務。如果只需要在特定手機上訪問數據(並且您想保持關係),則可以使用sqlite。

+0

我需要從手機轉移到數據庫 – Alex 2010-08-05 23:37:58

2

我試圖DATABASESERVER從Android應用程序連接,最初我遇到了一些問題,而我是用JTDS,jar包的數據庫驅動程序支持,而不是使用JTDS數據庫驅動程序支持jar文件請使用MySQL連接器jar文件。 mysql-connector jar文件「mysql-connector-java-5.1.24-bin.jar」。 把這個jar文件放在項目的libs文件夾中。

一點點的代碼片段:

`String url="jdbc:mysql://(IP-of databaseServer):3306/DBNAME";` 
`String driver="org.gjt.mm.mysql.Driver";` 
`String username="XYZ";//user must have read-write permission to Database 
`String password= "*********";`//user password 

`try{ 
    Class.forName(driver).newInstance();//loading driver 
    Connection con = DriverManager.getConnection(url,username,password); 
    /*once we get connection we can execute ths SQL command to Remote Database Server with the help mysql-connector driver over Internet*/ 

}`  
`catch(Exception e){ 
    e.printStackTrace(); 
}` 

我希望它可以工作。

Cheers Rajesh P Yadav。

2

我是Offline First的粉絲,這意味着您的應用程序應該可以在沒有連接的情況下使用。

爲了便於實現,我建議使用SQLite本地數據庫,並在聯機時同步到遠程數據庫。

您可以使用類似SymmetricDSDaffodil Replicator的工具通過HTTP(S)同步本地和遠程數據庫。

相關問題