将Android App与存储在本地计算机上的My SQL数据库连接

时间:2015-11-02 15:58:59

标签: android mysql sql jdbc

我可以通过哪些方式完成上述任务? 我使用的当前使用JDBC连接器和应用程序  我的问题是?

在以下步骤中:

static final String DB_URL = "jdbc:mysql://localhost:3306/mess";
static final String USER = "root";
static final String PASS = "root";

public Connection connection_open(){
    Connection conn=null;
    try{
         Class.forName("com.mysql.jdbc.Driver").newInstance();

         conn = DriverManager.getConnection(DB_URL,USER,PASS);
         System.out.println("\n Connection inside DB = OK");
      }

   catch(SQLException se){
       System.out.println("\n Connection inside DB = failed");
       se.printStackTrace();
      }

    finally {
        if(conn==null)System.out.println("\n Have to return NULL");
             return conn;
        }
}

这总是输出:

Connection inside DB = failed
Have to return NULL

那么,在DB URL的localhost部分,我是否必须编写我用于调试的Android手机的IP? 是否可能,我的应用程序远程连接(假设我已授予所有IP权限)

请帮助:)

3 个答案:

答案 0 :(得分:1)

这不会奏效。首先,这是错误的:

static final String DB_URL = "jdbc:mysql://localhost:3306/mess";

localhost将是你的Android手机,它没有任何MySQL数据库。

您应该规划一个网络服务,负责处理对您的数据库的所有请求,并将结果发送回您的应用。

要访问/连接到您的网络服务,您可以使用HttpURLConnection。

答案 1 :(得分:0)

您希望实现什么目标?

您的Android应用应该保存并将数据上传到中央服务器位置? - 如果答案是肯定的,你的选项是Parse(我猜你已经尝试过)或者快速构建你自己的休息服务器api。我个人最喜欢的是Google App Engine上的python rest api服务器。 https://cloud.google.com/appengine/docs/python/

如果你的Android应用程序应该在Android设备上保存数据而不需要与任何服务器通信,那么创建sqlite数据库的本地实例并从中存储检索数据。 试试这个 - http://satyan.github.io/sugar/

答案 2 :(得分:0)

有可能你可以在android中运行mysql数据库。但是你必须交叉编译arm架构的mysql源代码becoz手机有arm架构 您可以使用android ndk或arm gcc编译器进行交叉编译。一旦你复制了你的libs,它将生成.so文件(linux中的扩展名)。你必须将这些库添加到你的项目中。然后使用jni你必须编写一个将使用mysql函数的c程序。比如crud操作然后使用jni然后你必须从你的java代码调用本机c程序。这样你就可以做到这一点。我这样做了一次。但这是一项非常乏味和繁琐的任务。