日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android實現(xiàn)全局共享數(shù)據(jù)庫(android全局共享數(shù)據(jù)庫)

隨著移動互聯(lián)網(wǎng)的快速發(fā)展,越來越多的應用程序被開發(fā)出來。在這些應用程序中,使用數(shù)據(jù)庫來存儲數(shù)據(jù)是非常常見的。然而,在多個應用程序享數(shù)據(jù)卻面臨著許多挑戰(zhàn)。在這篇文章中,我們將介紹如何在Android中實現(xiàn)全局共享數(shù)據(jù)庫。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、馬尾網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5頁面制作、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為馬尾等各大城市提供網(wǎng)站開發(fā)制作服務。

1. 簡介

在Android中,每個應用程序都有它自己的私有數(shù)據(jù)庫,其他應用程序無法訪問。但是,在某些情況下,我們需要在多個應用程序之間共享數(shù)據(jù)。例如,我們可能需要一個跨應用程序的用戶名和密碼,這樣用戶就可以在多個應用程序中使用同樣的憑據(jù)進行登錄。

實現(xiàn)全局共享數(shù)據(jù)的一種方法是使用ContentProvider。ContentProvider是Android中的一個組件,用于將數(shù)據(jù)從一個應用程序共享到另一個應用程序。通過ContentProvider,我們可以將不同應用程序的數(shù)據(jù)共享在同一個數(shù)據(jù)庫中。

2. 創(chuàng)建共享數(shù)據(jù)庫

創(chuàng)建共享數(shù)據(jù)庫,我們需要創(chuàng)建一個ContentProvider。ContentProvider是Android中的一個組件,用于將數(shù)據(jù)從一個應用程序共享到另一個應用程序。在創(chuàng)建ContentProvider的時候,我們需要實現(xiàn)一些基本方法。

在下面的示例中,我們將創(chuàng)建一個名為“mydb”的共享數(shù)據(jù)庫。該數(shù)據(jù)庫將包含一個名為“Users”的表格,并存儲用戶名和密碼。

我們創(chuàng)建一個新的項目,并在其中創(chuàng)建一個新的類“UsersProvider”。

“`

public class UsersProvider extends ContentProvider {

private SQLiteDatabase db;

@Override

public boolean onCreate() {

UsersOpenHelper helper = new UsersOpenHelper(getContext());

db = helper.getWritableDatabase();

return true;

}

@Override

public Uri insert(Uri uri, ContentValues values) {

long id = db.insert(“Users”, null, values);

getContext().getContentResolver().notifyChange(uri, null);

return Uri.withAppendedPath(uri, Long.toString(id));

}

@Override

public Cursor query(Uri uri, String[] projection, String selection,

String[] selectionArgs, String sortOrder) {

return db.query(“Users”, null, selection, selectionArgs, null, null, sortOrder);

}

@Override

public int update(Uri uri, ContentValues values, String selection,

String[] selectionArgs) {

int rows = db.update(“Users”, values, selection, selectionArgs);

getContext().getContentResolver().notifyChange(uri, null);

return rows;

}

@Override

public int delete(Uri uri, String selection, String[] selectionArgs) {

int rows = db.delete(“Users”, selection, selectionArgs);

getContext().getContentResolver().notifyChange(uri, null);

return rows;

}

@Override

public String getType(Uri uri) {

return null;

}

}

“`

在上面的代碼中,我們創(chuàng)建了一個名為“UsersProvider”的ContentProvider。我們將“UsersProvider”中的每個方法逐一解釋如下:

– onCreate() – 在創(chuàng)建“UsersProvider”時調用。在此方法中,我們初始化數(shù)據(jù)庫并返回true。

– insert() – 在添加新數(shù)據(jù)時調用。在此方法中,我們將新數(shù)據(jù)添加到數(shù)據(jù)庫中,并使用Uri返回新添加的數(shù)據(jù)的ID。

– query() – 在讀取數(shù)據(jù)庫中的數(shù)據(jù)時調用。在此方法中,我們查詢數(shù)據(jù)庫中的數(shù)據(jù)并返回一個Cursor對象。

– update() – 在更新數(shù)據(jù)庫中的數(shù)據(jù)時調用。在此方法中,我們更新數(shù)據(jù)庫中的數(shù)據(jù),并使用Uri返回所更新的數(shù)據(jù)的ID。

– delete() – 在刪除數(shù)據(jù)庫中的數(shù)據(jù)時調用。在此方法中,我們刪除數(shù)據(jù)庫中的數(shù)據(jù),并使用Uri返回所刪除的數(shù)據(jù)的ID。

– getType() – 根據(jù)傳入的URI返回相應的MIME類型。

我們還需要實現(xiàn)一個類“UsersOpenHelper”,用于創(chuàng)建和升級數(shù)據(jù)庫。

“`

public class UsersOpenHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “mydb”;

private static final int DATABASE_VERSION = 1;

public UsersOpenHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

String sql = “CREATE TABLE Users (_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT);”;

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL(“DROP TABLE IF EXISTS Users;”);

onCreate(db);

}

}

“`

在上面的代碼中,我們創(chuàng)建了一個名為“UsersOpenHelper”的SQLiteOpenHelper類。我們將“UsersOpenHelper”中的每個方法逐一解釋如下:

– 構造函數(shù) – 在創(chuàng)建新的“UsersOpenHelper”時調用。在此方法中,我們指定數(shù)據(jù)庫的名稱和版本號。

– onCreate() – 在創(chuàng)建數(shù)據(jù)庫時調用。在此方法中,我們創(chuàng)建一個名為“Users”的表格。

– onUpgrade() – 在升級數(shù)據(jù)庫時調用。在此方法中,我們刪除“Users”表格并重新創(chuàng)建它。

3. 添加權限

在我們的應用程序中使用共享數(shù)據(jù)庫之前,我們需要在AndroidManifest.xml文件中添加適當?shù)臋嘞蕖?/p>

“`

“`

在上面的代碼中,我們添加了WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE權限,以便我們的應用程序能夠訪問存儲設備上的數(shù)據(jù)庫。

4. 使用共享數(shù)據(jù)庫

現(xiàn)在我們已經(jīng)創(chuàng)建了一個共享數(shù)據(jù)庫,并添加了適當?shù)臋嘞?。我們可以在我們的應用程序中使用這個共享數(shù)據(jù)庫了。我們可以通過以下代碼獲取共享數(shù)據(jù)庫的Uri:

“`

Uri uri = Uri.parse(“content://com.example.myapp.UsersProvider/Users”);

“`

其中,“com.example.myapp”是你的應用程序的包名,“UsersProvider”是你創(chuàng)建的ContentProvider的名稱,“Users”是你創(chuàng)建的表格的名稱。

我們可以使用以下代碼將數(shù)據(jù)添加到數(shù)據(jù)庫中:

“`

ContentValues values = new ContentValues();

values.put(“username”, “test”);

values.put(“password”, “123456”);

getContentResolver().insert(uri, values);

“`

我們還可以使用以下代碼從數(shù)據(jù)庫中獲取數(shù)據(jù):

“`

Cursor cursor = getContentResolver().query(uri, null, null, null, null);

if (cursor != null) {

while (cursor.moveToNext()) {

String username = cursor.getString(cursor.getColumnIndex(“username”));

String password = cursor.getString(cursor.getColumnIndex(“password”));

// Do something with the data

}

cursor.close();

}

“`

我們可以使用類似的方式更新和刪除數(shù)據(jù)。

5.

在本文中,我們介紹了如何在Android中實現(xiàn)全局共享數(shù)據(jù)庫。我們使用ContentProvider將不同應用程序的數(shù)據(jù)共享在同一個數(shù)據(jù)庫中。通過ContentProvider,我們可以輕松地在多個應用程序之間共享數(shù)據(jù)。

相關問題拓展閱讀:

  • 要怎么實現(xiàn)android的sqlite 和 網(wǎng)站上的SqlServer的數(shù)據(jù)同步

要怎么實現(xiàn)android的sqlite 和 網(wǎng)站上的SqlServer的數(shù)據(jù)同步

1、查詢SQL中的所有表: Select TABLE_NAME FROM 數(shù)據(jù)庫名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE=’BASE TABLE’ 執(zhí)行之后,就可以看到數(shù)據(jù)庫中所有屬于自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = ‘伍兆u’) AND (NOT (dbo.sysobjects.name LIKE ‘dtproperties’)) 3、在Sql查詢分析器,還有一個簡單的查詢方法: EXEC sp_MSforeachtable @command1=”sp_spaceused ‘?'” 執(zhí)行完之后,就可以看到數(shù)據(jù)庫塌橘敬中所有用戶表的信息 4、查詢總存儲過程數(shù):select count(*) 總存儲過程數(shù) from sysobjects where xtype=’p’ 附:xtype類型D = 默認值或 DEFAULT 約束

F = FOREIGN KEY 約束L = 日志FN = 標量函數(shù)

IF = 內(nèi)嵌表函數(shù)

P = 存儲過程

PK = PRIMARY KEY 約束(類型是 K)

RF = 復制篩選存儲過程S = 系統(tǒng)表TF = 表函數(shù)

TR = 觸發(fā)器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴展存儲過程 另:在sqlserver中取得某個數(shù)據(jù)庫中所有表名的sql語句 select sysobjects.name from sysobjects.xtype =’U’;SELECT name

WHERE (xtype = ‘團慎U’) 在數(shù)據(jù)庫的sysobjects表里有這個數(shù)據(jù)庫全部表的信息, xtype值為’U’的就是表名 注意:一般通過上述方法獲得全部用戶表示都會有一個dtproperties表,SQLSERVER 默認它也是用戶表,想要從用戶表中排出,需要加上限定條件 status>0,即:select * from sysobjects where xtype=’U’ and status>0

android 全局共享數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于android 全局共享數(shù)據(jù)庫,Android實現(xiàn)全局共享數(shù)據(jù)庫,要怎么實現(xiàn)android的sqlite 和 網(wǎng)站上的SqlServer的數(shù)據(jù)同步的信息別忘了在本站進行查找喔。

香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。


當前文章:Android實現(xiàn)全局共享數(shù)據(jù)庫(android全局共享數(shù)據(jù)庫)
文章出自:http://www.dlmjj.cn/article/dhidihs.html