首页 > 解决方案 > 从服务器的 [NGINX] MySQL 数据库创建和重新创建本地 Android 数据库

问题描述

我目前有一个Android将数据推送到本地Android数据库和我的MySQL数据库的应用程序,该数据库存储在我的NGINX服务器上。

每当重新启动应用程序时,都会从最新服务器的数据库中删除并重新创建本地表。

我目前正在通过调用StringRequest一个脚本来实现这一点,该脚本通过该方法PHP检索数据。然后遍历结果集并插入本地数据库:JSONonResponse

JSONObject jsonObj = jsonObjects[0];
try {
    JSONArray dataArray = jsonObj.getJSONArray("example");
    if (dataArray.length() != 0) {
        try {
            db.execSQL("DELETE FROM TABLEX");
            db.execSQL("DELETE FROM sqlite_sequence WHERE name = 'TABLEX';");
            db.beginTransaction();
            ContentValues cv = new ContentValues();
            for (int i = 0; i < dataArray.length(); i++) {
                JSONObject row = dataArray.getJSONObject(i);
                cv.put("DATA_A", row.getInt("DATA_A"));
                db.insert("TABLEX", null, cv);
            }
            db.setTransactionSuccessful();
            db.endTransaction();
        } catch (SQLiteException e) {
            e.printStackTrace();
        }
    }

} catch (JSONException e) {
     e.printStackTrace();
}

这目前是一个可行的解决方案,但是,随着条目的增加,这会增加响应时间,我很谨慎,这不是从在线 MySql 数据库重新创建本地数据库的最有效方法。

我已经研究过了,我正在努力寻找最有效的方法:

[1]从 MySQL 服务器访问数据(当前:StringRequest 和 PHP)-> [2]从 MySQL 服务器检索数据(当前:PHP 和 JSON)-> [3]从 MySQL 服务器的新数据和更新数据重新创建本地 Android 数据库(当前:JSON 和内容值插入)。

我对这些概念很陌生,因此我们将不胜感激地获得任何帮助。

当然,最好MySQL通过创建远程.SQL文件来访问和检索服务器数据库中的数据PHP,删除现有表,然后从该远程.SQL文件重新创建表?

再次,我回到我的天真和当前的经验,任何进一步我理解的教程或链接都会很棒。

标签: phpandroidmysql

解决方案


推荐阅读