Java Android sqlite和sql server中的同步(crud操作)有两种方式

Java Android sqlite和sql server中的同步(crud操作)有两种方式,java,android,sql-server,asynchronous,synchronization,Java,Android,Sql Server,Asynchronous,Synchronization,我正在开发一个android应用程序,它有 我的设备上的sq-lite数据库 同步它们的主服务器上的服务器sql db,具有两个相同的数据库 (字段结构和字段名称相同) 我需要以两种方式开发这些数据库之间的同步 若我在Android中更改数据库数据,那个么它将更改web服务器上的数据 当我从服务器更改数据时,它应该在android中更改数据 同步将在1天内自动运行 现在的问题是如何在Android中同步这些数据库? 因为我刚进入移动世界,我也是实习生,他们说如果我能完成这项工作,我将

我正在开发一个android应用程序,它有

  • 我的设备上的sq-lite数据库

  • 同步它们的主服务器上的服务器sql db,具有两个相同的数据库
    (字段结构和字段名称相同)

  • 我需要以两种方式开发这些数据库之间的同步

  • 若我在Android中更改数据库数据,那个么它将更改web服务器上的数据

  • 当我从服务器更改数据时,它应该在android中更改数据

  • 同步将在1天内自动运行

    现在的问题是如何在Android中同步这些数据库? 因为我刚进入移动世界,我也是实习生,他们说如果我能完成这项工作,我将是永久的

发现了一些东西,但我是初学者。 我没有找到任何样品。我在这里发现了类似的问题,但没有找到任何代码,任何只在2路同步数据的示例

如果有人能给我(开源项目)或一些带解释的示例代码,我将不胜感激

或者类似的东西会告诉我一个方法


我找到了这些文章,但对我没有帮助。

将其用作您的android服务

public class Connector {

HttpClient httpClient = null;
HttpPost httpPost = null;
HttpResponse httpResponse = null;
String serverResponse = null;

public String callService(String url){

    try{
        httpClient = new DefaultHttpClient();
        httpPost = new HttpPost(url);
        httpResponse = httpClient.execute(httpPost);
        //Log.e("URL Response", serverResponse);
        serverResponse = EntityUtils.toString(httpResponse.getEntity());
    }
    catch(Exception ex){
        Log.e("Exception in connectivity", ex.toString());
    }
    //Log.e("URL Response", serverResponse);
    return serverResponse;
}

}
此类帮助您更新android db

public class DbSync extends SQLiteOpenHelper {

private static String DB_PATH = "";
private static final String DATABASE_NAME = "Your_Db_Name";
private SQLiteDatabase sqliteDb = null;
private String path = null;

public DbSync(Context context) {
    super(context, DATABASE_NAME, null, 1);
    DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
    path = DB_PATH + DATABASE_NAME;
}

@Override
public void onCreate(SQLiteDatabase db) {

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

public void syncUsers(){
    try {
        String response = new TaskAsync().execute("URL_Where_Service_Running").get();
        Log.d("response", response);

        String tableName = "Table_Name";

        sqliteDb = SQLiteDatabase.openDatabase(path, null,  SQLiteDatabase.OPEN_READWRITE);
        sqliteDb.delete(tableName, null, null);

                    //here you have to parse your data from DB and insert using 
                    ContentValues values = new ContentValues();
        values.put("col_name1", parsedColumnValue);
        values.put("col_name2", parsedColumnValue);

        long status = sqliteDb.insert(tableName, " ", values);

        Log.d("database", Long.toString(status));


        sqliteDb.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}
您必须根据DB返回的数据定制上述代码。
希望有帮助:)

考虑一下这种情况,两个数据库都发生了更改,那么会发生什么?任何一项更改都将被另一项更改丢弃和覆盖。@DixitPatel这是什么?同时更改?@Raj同时更改?一天之内,因为您告诉我您希望一天同步一次数据库。这太棒了,但您能更新SDK 23+的代码吗?由于对支持
HttpClient