日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

1. 簡介

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

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

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

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

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

我們創(chuàng)建一個新的項(xià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í)調(diào)用。在此方法中,我們初始化數(shù)據(jù)庫并返回true。

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

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

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

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

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

我們還需要實(shí)現(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”中的每個方法逐一解釋如下:

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

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

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

3. 添加權(quán)限

在我們的應(yīng)用程序中使用共享數(shù)據(jù)庫之前,我們需要在AndroidManifest.xml文件中添加適當(dāng)?shù)臋?quán)限。

“`

“`

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

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

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

“`

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

“`

其中,“com.example.myapp”是你的應(yīng)用程序的包名,“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中實(shí)現(xiàn)全局共享數(shù)據(jù)庫。我們使用ContentProvider將不同應(yīng)用程序的數(shù)據(jù)共享在同一個數(shù)據(jù)庫中。通過ContentProvider,我們可以輕松地在多個應(yīng)用程序之間共享數(shù)據(jù)。

相關(guān)問題拓展閱讀:

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

要怎么實(shí)現(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(yù)’) 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 = 默認(rèn)值或 DEFAULT 約束

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

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

P = 存儲過程

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

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

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

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

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

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


本文名稱:Android實(shí)現(xiàn)全局共享數(shù)據(jù)庫(android全局共享數(shù)據(jù)庫)
文章網(wǎng)址:http://www.5511xx.com/article/dhidihs.html