20240312打卡
第三周 | 第一天 | 第二天 | 第三天 | 第四天 | 第五天 | 第六天 | 第七天 |
---|---|---|---|---|---|---|---|
所花时间 | 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()) { //将数据上传到远程数据库 //标记数据的同步状态 } //将远程数据下载到本地数据库 //查询远程数据库 //将数据插入到本地数据库 //标记数据的同步状态
合理控制同步操作的时机和频率,确保用户体验和网络效率。
本文作者:丰川扬子
本文链接:https://www.cnblogs.com/newzeon/p/18069081
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步