我创建了一个小型演示应用程序,我一直在尝试实现SQLite数据库。一切正常,但对移动开发不熟悉我不确定数据库是如何工作的。
public class DBOpenHelper extends SQLiteOpenHelper{
//Constants for db name and version
private static final String DATABASE_NAME = "notes.db";
private static final int DATABASE_VERSION = 1;
//Constants for identifying table and columns
public static final String TABLE_NOTES = "notes";
public static final String NOTE_ID = "_id";
public static final String NOTE_TEXT = "noteText";
public static final String NOTE_CREATED = "noteCreated";
public static final String[] ALL_COLUMNS =
{NOTE_ID, NOTE_TEXT, NOTE_CREATED};
//SQL to create table
private static final String TABLE_CREATE =
"CREATE TABLE " + TABLE_NOTES + " (" +
NOTE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
NOTE_TEXT + " TEXT, " +
NOTE_CREATED + " TEXT default CURRENT_TIMESTAMP" +
")";
public DBOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NOTES);
onCreate(db);
}
}
这个数据库是否会在所有下载应用程序的手机上都是同一个数据库,这意味着如果手机上的人1向数据库写了一些东西,那么另一部手机的人2会立即看到更新?
或者反过来说:第1人有一个数据库而第2人有自己的另一个数据库吗?
我有兴趣为我的应用程序创建一个数据库,该数据库作为所有手机的一个数据库,因此第1人和第2人将使用完全相同的数据库。
答案 0 :(得分:3)
SQLite是一个本地数据库,所以每个人都有自己独特的数据,没有任何东西可以共享
如果您正在寻找在多个设备之间同步的内容,您应该考虑让后端服务器从一台设备接收更新并将此更新发送到其他设备
答案 1 :(得分:2)
此数据库是否适用于所有下载该应用的手机上的数据库,
答案是 NO
因为SQLite
数据库本地存储在设备中
这意味着如果手机上的人1向数据库写入内容,则使用另一部手机的人2会立即看到更新?
SQLite
我有兴趣为我的应用创建一个数据库,作为所有手机的一个数据库,因此第1人和第2人将使用完全相同的数据库。
您可以使用Firebase Realtime Database
答案 2 :(得分:0)
这些数据库是在设备本地创建的,它与外界没有任何联系,每个运行app的设备都创建了自己的本地数据库,你应该使用Firebase Real-time Database创建一个同步的数据库只要有人改变,它就会反映在所有其他设备上。
Heare is a good example to start with。在开始之前请参阅附带的视频。