2010-08-05 97 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)同步本地和远程数据库。

相关问题