我可以通过哪些方式完成上述任务? 我使用的当前使用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权限)
请帮助:)
答案 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程序。这样你就可以做到这一点。我这样做了一次。但这是一项非常乏味和繁琐的任务。