在我的 android studio 項(xiàng)目中,我創(chuàng)建了一個(gè)離線 SQLite 數(shù)據(jù)庫(kù),用于將數(shù)據(jù)存儲(chǔ)在用戶的手機(jī)中。但現(xiàn)在,我想讓這個(gè)數(shù)據(jù)庫(kù)聯(lián)機(jī),這樣每個(gè)擁有該應(yīng)用程序的人都可以使用一個(gè)數(shù)據(jù)庫(kù)(如果第一個(gè)用戶更改數(shù)據(jù),則數(shù)據(jù)將在第二個(gè)用戶的應(yīng)用程序中更改)。如何使現(xiàn)有數(shù)據(jù)庫(kù)聯(lián)機(jī),以便多人可以使用它?(我需要使用PHP腳本創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)嗎?)這是我的一些數(shù)據(jù)庫(kù)類代碼:public class DatabaseHelper extends SQLiteOpenHelper {public static final String DATABASE_NAME = "mylist7641337.db";public static final String TABLE_NAME = "mylist_data7641337";public static final String COL1 = "ID";public static final String COL2 = "NAME1";public static final String COL3 = "YEAR1";public static final String COL4= "MONTH1";public static final String COL5= "DAY1";public static final String COL6= "PRICE1";public static final String COL7= "STYEAR1";public static final String COL8= "STMONTH1";public static final String COL9= "STDAY1";public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +"NAME1 TEXT, " +"YEAR1 INTEGER, " +"MONTH1 INTEGER, " +"DAY1 INTEGER, " +"PRICE1 INTEGER, " +"STYEAR1 INTEGER, " +"STMONTH1 INTEGER, " +"STDAY1 INTEGER)"; db.execSQL(createTable);}
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
首先,默認(rèn)的Android數(shù)據(jù)庫(kù)是SQLite
. 它是一個(gè)嵌入式 DBMS。SQLite
不是客戶端-服務(wù)器數(shù)據(jù)庫(kù)引擎。
TL,DR您無法提供對(duì)設(shè)備上本地?cái)?shù)據(jù)庫(kù)的訪問。
與后端交互的最常見方式是創(chuàng)建 REST API/JSON RPC/... 并向后端服務(wù)器查詢數(shù)據(jù)。
在后端,您可能擁有所需的任何 DBMS,但最終客戶端將通過 API 從這些詳細(xì)信息中抽象出來。
當(dāng)然,您可以使用MySQL, PostgreSQL,...
驅(qū)動(dòng)程序直接查詢數(shù)據(jù)庫(kù)服務(wù)器,但不建議這樣做。
總而言之,您可以將本地?cái)?shù)據(jù)存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中,并定期將數(shù)據(jù)上傳到服務(wù)器,也可以只與后端交互,而不在本地緩存數(shù)據(jù)。在后一種情況下,您將始終保持同步。
希望我解釋了這件事。
添加回答
舉報(bào)
0/150
提交
取消