我知道之前也有人问过这个问题,但我想知道我们是否可以在不使用网络服务的情况下从 Android 设备连接到外部数据库(例如 mySQL)。
我已经使用 webservice 构建了应用程序,但现在他们要求我们在不使用 webservice 的情况下构建它。
任何人都可以知道或提供任何引用吗?
我有关于数据库位置的所有必需数据,即服务器名称、数据库名称等。
实际上,根据我的要求,我正在下载 xml 并使用 web 服务,该服务将包含连接字符串、数据库名称、服务器名称、用户名、密码等所有详细信息,但连接将在运行时完成。
最佳答案
是的,您可以直接连接到远程数据库。不过我不确定它的安全性。
试试这个:
将 .jar 文件添加到您的 Android 项目中并将其添加为库。
创建一个扩展 AsyncTask 的类并执行其中的方法。
public class connectToServer extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... args) {
try {
connect();
} catch (Exception e) {
Log.e("Error", e.toString());
}
return null;
}
@Override
protected void onPostExecute(String file_url)
{
}
}
public void connect(){
Log.e("Android", "SQL Connection start");
Connection conn = null;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String ip = "[your host server]";
String dbName = "[your dbName]";
String user = "[your userName]";
String password = "[your password]";
String connString = "jdbc:mysql://" + ip + "/" + dbName +
"";
conn = DriverManager.getConnection(connString, user, password);
Log.e("Connection", "Open");
Statement statement = conn.createStatement();
ResultSet set = statement.executeQuery("Select * from [table]");
statement.setQueryTimeout(0);
while(set.next())
{
Log.e("Data:", set.getString("[column_name]"));
}
}catch(Exception e)
{
Log.e("Error connection", e.toString());
}
}//end method
关于android - 在不使用webservice的情况下在android中连接外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127788/