android - 在不使用webservice的情况下在android中连接外部数据库

标签 android database connection

我知道之前也有人问过这个问题,但我想知道我们是否可以在不使用网络服务的情况下从 Android 设备连接到外部数据库(例如 mySQL)

  1. 我已经使用 webservice 构建了应用程序,但现在他们要求我们在不使用 webservice 的情况下构建它。

  2. 任何人都可以知道或提供任何引用吗?

  3. 我有关于数据库位置的所有必需数据,即服务器名称、数据库名称等。

实际上,根据我的要求,我正在下载 xml 并使用 web 服务,该服务将包含连接字符串、数据库名称、服务器名称、用户名、密码等所有详细信息,但连接将在运行时完成。

最佳答案

是的,您可以直接连接到远程数据库。不过我不确定它的安全性。

试试这个:

  1. 下载MySQL JDBC

  2. 将 .jar 文件添加到您的 Android 项目中并将其添加为库。

  3. 创建一个扩展 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/

相关文章:

ruby-on-rails - 如何使类\对象在rails中全局可用?

ios - iOS BLE 连接参数是否也适用于 iOS 从设备/外围设备?

android - 如何在 Kotlin 的 forEach 之外返回?

javascript - 是否可以使用 HTML/Javascript 按名称启动应用程序?

database - 确保在多台机器上跨表生成唯一的 key

python - 简单的 Python 程序卡住了

java - 如何将文件读入 Java 位图?

android - Zxing 使用自定义布局

database - 编写 Oracle 对象的脚本

mysql - 与上传的数据创建多对多关系