第三周 | 第一天 | 第二天 | 第三天 | 第四天 | 第五天 | 第六天 | 第七天 |
---|---|---|---|---|---|---|---|
所花时间 | 3h | 5h | |||||
代码量(行) | 274 | 256 | |||||
博客量(篇) | 1 | 1 | |||||
知识点了解 | 完成AndroidStudio中原生数据库SQlite简单的CRUD | 本地数据库连接到远程数据库 |
SQLite 在Android应用中与远程MySQL数据库同步(转载极客笔记)
在Android应用中使用SQLite
Android提供了一个名为SQLiteOpenHelper的帮助类,用于管理SQLite数据库。下面是在Android应用中使用SQLite的基本步骤:
创建一个继承自SQLiteOpenHelper的辅助类,用于管理数据库的创建和版本控制。
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydb.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表格的SQL语句
String createTable = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";
//执行创建表格的SQL语句
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//升级数据库的操作
}
}
在应用程序的适当位置,创建一个DatabaseHelper的实例,并获取一个可写的或可读的数据库连接。
DatabaseHelper helper = new DatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
执行SQL语句进行数据库操作,如插入、查询、更新和删除。
//插入一条数据
ContentValues values = new ContentValues();
values.put("name", "John");
db.insert("mytable", null, values);
//查询数据
Cursor cursor = db.query("mytable", null, null, null, null, null, null);
while (cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
//处理查询结果
}
//更新数据
ContentValues updateValues = new ContentValues();
updateValues.put("name", "Mike");
db.update("mytable", updateValues, "id = ?", new String[] { "1" });
//删除数据
db.delete("mytable", "id = ?", new String[] { "1" });
在合适的时机关闭数据库连接。
db.close();
在Android应用中与远程MySQL数据库同步
在某些情况下,我们可能需要将本地的SQLite数据库与远程的MySQL数据库进行同步。例如,在一个需要多设备之间共享数据的应用中,我们可能希望将数据存储在云端的MySQL数据库中,并通过同步机制确保本地数据库与云端数据库的一致性。
下面是实现此同步的一种方法:
在应用中创建一个用于存储同步状态的表,记录每个数据项的同步状态(已同步、待同步、冲突等)。
String createSyncTable = "CREATE TABLE sync_table (id INTEGER PRIMARY KEY, sync_status INTEGER)";
db.execSQL(createSyncTable);
在应用中实现一个数据同步的逻辑,包括将本地数据上传到远程数据库和将远程数据下载到本地数据库。
//将本地数据上传到远程数据库
Cursor cursor = db.query("mytable", null, "sync_status = ?", new String[] { "0" }, null, null, null);
while (cursor.moveToNext()) {
//将数据上传到远程数据库
//标记数据的同步状态
}
//将远程数据下载到本地数据库
//查询远程数据库
//将数据插入到本地数据库
//标记数据的同步状态
合理控制同步操作的时机和频率,确保用户体验和网络效率。
标签:同步,String,20240312,数据库,db,打卡,null,远程 From: https://www.cnblogs.com/newzeon/p/18069081