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 中国大陆许可协议进行许可。

posted @   丰川扬子  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.