新聞中心
隨著移動(dòng)設(shè)備的普及,Android設(shè)備已經(jīng)成為人們?nèi)粘J褂玫闹饕K端。在Android應(yīng)用程序中,數(shù)據(jù)庫(kù)連接是常見(jiàn)的需求,而在多個(gè)應(yīng)用程序享數(shù)據(jù)庫(kù)連接也是一種常見(jiàn)的需求。本文將介紹在Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的方法。

Android數(shù)據(jù)存儲(chǔ)
在Android平臺(tái)上,數(shù)據(jù)存儲(chǔ)有多種方式,其中最常用的是SQLite數(shù)據(jù)庫(kù)。SQLite是一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),簡(jiǎn)單易用,且支持多線(xiàn)程訪(fǎng)問(wèn)。同時(shí),Android也提供了SharedPreferences、文件存儲(chǔ)等簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)方式,但是這些存儲(chǔ)方式的使用場(chǎng)景相對(duì)來(lái)說(shuō)比較有限。
在Android應(yīng)用程序的數(shù)據(jù)存儲(chǔ)中,需要注意以下幾個(gè)方面:
1. 數(shù)據(jù)的讀寫(xiě)權(quán)限
2. 數(shù)據(jù)的安全性
3. 數(shù)據(jù)的性能
為了滿(mǎn)足這些要求,需要使用合適的數(shù)據(jù)存儲(chǔ)方式,并將數(shù)據(jù)存儲(chǔ)在合適的位置。
Android應(yīng)用程序的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)方式
Android提供了SQLiteOpenHelper和ContentProvider兩種常見(jiàn)的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)方式。
SQLiteOpenHelper是一個(gè)幫助開(kāi)發(fā)者管理SQLite數(shù)據(jù)庫(kù)的工具類(lèi),可以幫助開(kāi)發(fā)者創(chuàng)建、升級(jí)和刪除數(shù)據(jù)庫(kù)。使用SQLiteOpenHelper可以簡(jiǎn)化代碼,提高效率。
ContentProvider是一個(gè)在應(yīng)用程序之間共享數(shù)據(jù)的機(jī)制。通過(guò)ContentProvider,應(yīng)用程序可以將數(shù)據(jù)暴露給其他應(yīng)用程序使用。ContentProvider提供了對(duì)數(shù)據(jù)的統(tǒng)一訪(fǎng)問(wèn)接口,可以通過(guò)Uri來(lái)訪(fǎng)問(wèn)數(shù)據(jù)。
Android應(yīng)用程序中的數(shù)據(jù)庫(kù)連接共享
現(xiàn)實(shí)開(kāi)發(fā)中,多個(gè)應(yīng)用程序可能需要對(duì)同一個(gè)數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě)操作,為了提高數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)效率,我們可以將數(shù)據(jù)庫(kù)連接共享,以減少連接數(shù)據(jù)庫(kù)的時(shí)間和資源開(kāi)銷(xiāo)。
在Android平臺(tái)上,實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的方法有多種,下面將從以下兩個(gè)方面進(jìn)行介紹:
1. 通過(guò)ContentProvider共享數(shù)據(jù)庫(kù)連接
2. 使用第三方工具庫(kù)進(jìn)行數(shù)據(jù)庫(kù)連接共享
1. 通過(guò)ContentProvider共享數(shù)據(jù)庫(kù)連接
ContentProvider是Android應(yīng)用程序之間共享數(shù)據(jù)的主要機(jī)制,我們可以通過(guò)ContentProvider來(lái)實(shí)現(xiàn)共享數(shù)據(jù)庫(kù)連接的需求。
具體實(shí)現(xiàn)方法如下:
1. 定義一個(gè)ContentProvider類(lèi),并在類(lèi)中創(chuàng)建一個(gè)SQLiteOpenHelper對(duì)象,負(fù)責(zé)連接和管理數(shù)據(jù)庫(kù)連接。
2. 在ContentProvider的onCreate()方法中創(chuàng)建SQLiteOpenHelper對(duì)象,獲取數(shù)據(jù)庫(kù)連接。
3. 在其他應(yīng)用程序中,通過(guò)ContentResolver對(duì)象和ContentProvider定義的Uri來(lái)讀寫(xiě)數(shù)據(jù),ContentProvider內(nèi)部獲取數(shù)據(jù)庫(kù)連接,執(zhí)行數(shù)據(jù)庫(kù)操作。
缺點(diǎn):ContentProvider需要對(duì)外暴露Uri接口,容易受到未授權(quán)的訪(fǎng)問(wèn)。
2. 使用第三方工具庫(kù)進(jìn)行數(shù)據(jù)庫(kù)連接共享
除了使用ContentProvider之外,我們還可以使用第三方工具庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享。目前比較常用的有GreenDAO和OrmLite這兩個(gè)工具庫(kù)。
這兩個(gè)工具庫(kù)都是開(kāi)源的,具有不同的優(yōu)點(diǎn)和特點(diǎn):
GreenDAO是一個(gè)輕量級(jí)的ORM工具,支持Android平臺(tái),可以將Java對(duì)象映射到SQLite數(shù)據(jù)庫(kù)中,提供方便快捷的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)接口,同時(shí)還支持多線(xiàn)程訪(fǎng)問(wèn)。
OrmLite是一個(gè)更加全面的ORM工具庫(kù),支持Android和Java平臺(tái),不僅可以將Java對(duì)象映射到SQLite數(shù)據(jù)庫(kù)中,還支持其他類(lèi)型數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),例如MySQL和PostgreSQL等。
在使用第三方工具庫(kù)時(shí),需要在應(yīng)用中添加對(duì)應(yīng)的庫(kù)文件和依賴(lài)關(guān)系,同時(shí)還需要根據(jù)具體的要求進(jìn)行配置和使用。
本文介紹了在Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接共享的方法。通過(guò)ContentProvider和第三方工具庫(kù),可以方便快捷地進(jìn)行數(shù)據(jù)庫(kù)連接共享,提高代碼效率和性能。在使用過(guò)程中,需要考慮數(shù)據(jù)的讀寫(xiě)權(quán)限、安全性和性能等方面,合理選擇數(shù)據(jù)存儲(chǔ)方式和具體實(shí)現(xiàn)方法。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專(zhuān)注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線(xiàn):028-86922220Android 怎么連接遠(yuǎn)程數(shù)據(jù)庫(kù)
一般是不會(huì)直接連接數(shù)據(jù)散襲辯庫(kù)的,就像我們?yōu)g覽禪搜網(wǎng)站一樣,沖缺也是通過(guò)后端程序連接數(shù)據(jù)庫(kù)的。若你需要的是嵌入數(shù)據(jù)庫(kù),那另外的說(shuō)法,MySQL提供嵌入式版本很輕量的Android 怎么連接遠(yuǎn)程數(shù)據(jù)庫(kù)
可以通過(guò)中間服務(wù), 比如一個(gè)站點(diǎn)開(kāi)漏鎮(zhèn)放一個(gè)地址yourdomain.com/android.aspx然后通過(guò)android發(fā)送請(qǐng)求到這個(gè)地址州搜襪,android.aspx根據(jù)請(qǐng)求的get/post數(shù)據(jù)進(jìn)行相冊(cè)激應(yīng)操作
看你的需求,webservice慢,適合互聯(lián)網(wǎng)app產(chǎn)品,jdbc直連省事,快,適合封閉內(nèi)網(wǎng)環(huán)境。
如何android多Activity間共享數(shù)據(jù)
Android應(yīng)用開(kāi)發(fā)中,給我們提供了5種數(shù)據(jù)的存儲(chǔ)方式
1 使用SharedPreferences存儲(chǔ)數(shù)據(jù)
2 文件存儲(chǔ)數(shù)據(jù)
3 SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)
4 使用ContentProvider存儲(chǔ)數(shù)據(jù)
5 網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù)
不同的業(yè)務(wù)邏輯,或者需求,用不同的實(shí)現(xiàn)方式
以下是這幾中數(shù)據(jù)存儲(chǔ)方式的說(shuō)明用及法,
之一種: 使用SharedPreferences存儲(chǔ)數(shù)據(jù)
SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類(lèi),主要是保存一些常用的配置比如窗口狀態(tài),
一般在Activity中 重載窗口狀態(tài)onSaveInstanceState保存一般使用SharedPreferences完成,
它提供了Android平臺(tái)常規(guī)的Long長(zhǎng) 整形、Int整形、String字符串型的保存。
它是什么樣的處理方梁宴式呢? SharedPreferences類(lèi)似過(guò)去Windows系統(tǒng)上的ini配置文件,但是它分為多種權(quán)限,
可以全局共享訪(fǎng)問(wèn),android123提示最終是以xml方式來(lái)保存,整體效率來(lái)看不是特別的高,
對(duì)于常規(guī)的輕量級(jí)而言比SQLite要好不少,如果真的存儲(chǔ)量不大可以考慮自己定義文件格式。
xml 處理時(shí)Dalvik會(huì)通過(guò)自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對(duì)于內(nèi)存資源占用比較好。
它的本質(zhì)是基于XML文件存儲(chǔ)key-value鍵值對(duì)數(shù)據(jù),通常用來(lái)存儲(chǔ)一些簡(jiǎn)單的配置信息。
其存儲(chǔ)位置在/data/data//shared_prefs目錄下。
SharedPreferences對(duì)象本身只能獲取數(shù)據(jù)而不支持存儲(chǔ)和修改,存儲(chǔ)修改是通過(guò)Editor對(duì)象實(shí)現(xiàn)。
實(shí)現(xiàn)SharedPreferences存儲(chǔ)的步驟如下:
一、根據(jù)Context獲取SharedPreferences對(duì)象
二、利用edit()方法獲取Editor對(duì)象。
三、通過(guò)Editor對(duì)象存儲(chǔ)key-value鍵值對(duì)數(shù)據(jù)。
四、通過(guò)commit()方法提交數(shù)據(jù)。
下面是示例代碼:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//獲取SharedPreferences對(duì)象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences(“SP”, MODE_PRIVATE);
//存入數(shù)據(jù)
Editor editor = sp.edit();
editor.putString(“STRING_KEY”, “string”);
editor.putInt(“INT_KEY”, 0);
editor.putBoolean(“BOOLEAN_KEY”, true);
editor.commit();
//返回STRING_KEY的值
Log.d(“SP”, sp.getString(“STRING_KEY”, “none”));
//如果NOT_EXIST不存在,則返回值為”none”
Log.d(“SP”, sp.getString(“NOT_EXIST”, “none”));
}
}
這段代碼執(zhí)行過(guò)后,即在/data/data/com.test/shared_prefs目錄下生成了一個(gè)SP.xml文件,一個(gè)應(yīng)用可以創(chuàng)建多個(gè)這樣的xml文件。
SharedPreferences對(duì)象與SQLite數(shù)據(jù)庫(kù)相比,免去了創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建表,寫(xiě)SQL語(yǔ)句等諸多操作,相對(duì)而言更加方便,簡(jiǎn)潔。
但是SharedPreferences也有其自身缺陷,比如其職能存儲(chǔ)boolean,int,float,long和String五種簡(jiǎn)單的數(shù)據(jù)類(lèi)型,比如滾行其無(wú)法進(jìn)行條件查詢(xún)等。
所以不論SharedPreferences的數(shù)據(jù)存儲(chǔ)操作是如何簡(jiǎn)單,它也大渣嘩只能是存儲(chǔ)方式的一種補(bǔ)充,而無(wú)法完全替代如SQLite數(shù)據(jù)庫(kù)這樣的其他數(shù)據(jù)存儲(chǔ)方式。
第二種: 文件存儲(chǔ)數(shù)據(jù)
關(guān)于文件存儲(chǔ),Activity提供了openFileOutput()方法可以用于把數(shù)據(jù)輸出到文件中,具體的實(shí)現(xiàn)過(guò)程與在J2SE環(huán)境中保存數(shù)據(jù)到文件中是一樣的。
文件可用來(lái)存放大量數(shù)據(jù),如文本、圖片、音頻等。
默認(rèn)位置:/data/data//files/***.***。
代碼示例:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput(“a.txt”,Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,”Saved”,Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}
openFileOutput()方法的之一參數(shù)用于指定文件名稱(chēng),不能包含路徑分隔符“/” ,如果文件不存在,Android 會(huì)自動(dòng)創(chuàng)建它。
創(chuàng)建的文件保存在/data/data//files目錄,如: /data/data/cn.itcast.action/files/itcast.txt ,
通過(guò)點(diǎn)擊Eclipse菜單“Window”-“Show View”-“Other”,在對(duì)話(huà)窗口中展開(kāi)android文件夾,
選擇下面的File Explorer視圖,然后在File Explorer視圖中展開(kāi)/data/data//files目錄就可以看到該文件。
openFileOutput()方法的第二參數(shù)用于指定操作模式,有四種模式,分別為:
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪(fǎng)問(wèn),在該模式下,寫(xiě)入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容,如果想把新寫(xiě)入的內(nèi)容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式會(huì)檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來(lái)控制其他應(yīng)用是否有權(quán)限讀寫(xiě)該文件。
MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取;
MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫(xiě)入。
如果希望文件被其他應(yīng)用讀和寫(xiě),可以傳入: openFileOutput(“itcast.txt”, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); android有一套自己的安全模型,當(dāng)應(yīng)用程序(.apk)在安裝時(shí)系統(tǒng)就會(huì)分配給他一個(gè)userid,當(dāng)該應(yīng)用要去訪(fǎng)問(wèn)其他資源比如文件的時(shí)候,就需要userid匹配。默認(rèn)情況下,任何應(yīng)用創(chuàng)建的文件,sharedpreferences,數(shù)據(jù)庫(kù)都應(yīng)該是私有的(位于/data/data//files),其他程序無(wú)法訪(fǎng)問(wèn)。
除非在創(chuàng)建時(shí)指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有這樣其他程序才能正確訪(fǎng)問(wèn)。
讀取文件示例:
public void load(){
try {
FileInputStream inStream=this.openFileInput(“a.txt”);
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte buffer=new byte;
int length=-1;
while((length=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
inStream.close();
text.setText(stream.toString());
Toast.makeText(MyActivity.this,”Loaded”,Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}
對(duì)于私有文件只能被創(chuàng)建該文件的應(yīng)用訪(fǎng)問(wèn),
如果希望文件能被其他應(yīng)用讀和寫(xiě),
可以在創(chuàng)建文件時(shí),指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE權(quán)限。
Activity還提供了getCacheDir()和getFilesDir()方法: g
etCacheDir()方法用于獲取/data/data//cache目錄 getFilesDir()方法用于獲取/data/data//files目錄。
把文件存入SDCard:
使用Activity的openFileOutput()方法保存文件,文件是存放在手機(jī)空間上,
一般手機(jī)的存儲(chǔ)空間不是很大,存放些小文件還行,如果要存放像視頻這樣的大文件,是不可行的。
對(duì)于像視頻這樣的大文件,我們可以把它存放在SDCard。
SDCard是干什么的?你可以把它看作是移動(dòng)硬盤(pán)或U盤(pán)。
在模擬器中使用SDCard,你需要先創(chuàng)建一張SDCard卡(當(dāng)然不是真的SDCard,只是鏡像文件)。
創(chuàng)建SDCard可以在Eclipse創(chuàng)建模擬器時(shí)隨同創(chuàng)建,也可以使用DOS命令進(jìn)行創(chuàng)建,
如下: 在Dos窗口中進(jìn)入android SDK安裝路徑的tools目錄,
輸入以下命令創(chuàng)建一張容量為2G的SDCard,文件后綴可以隨便取,
建議使用.img: mksdcard 2023M D:\AndroidTool\sdcard.img 在程序中訪(fǎng)問(wèn)SDCard,你需要申請(qǐng)?jiān)L問(wèn)SDCard的權(quán)限。
在AndroidManifest.xml中加入訪(fǎng)問(wèn)SDCard的權(quán)限如下:
要往SDCard存放文件,程序必須先判斷手機(jī)是否裝有SDCard,并且可以進(jìn)行讀寫(xiě)。
注意:訪(fǎng)問(wèn)SDCard必須在AndroidManifest.xml中加入訪(fǎng)問(wèn)SDCard的權(quán)限。
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File sdCardDir = Environment.getExternalStorageDirectory();//獲取SDCard目錄
File saveFile = new File(sdCardDir, “a.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write(“test”.getBytes());
outStream.close();
}
Environment.getExternalStorageState()方法用于獲取SDCard的狀態(tài),如果手機(jī)裝有SDCard,并且可以進(jìn)行讀寫(xiě),那么方法返回的狀態(tài)等于Environment.MEDIA_MOUNTED。
Environment.getExternalStorageDirectory()方法用于獲取SDCard的目錄,當(dāng)然要獲取SDCard的目錄,你也可以這樣寫(xiě):
File sdCardDir = new File(“/sdcard”); //獲取SDCard目錄
File saveFile = new File(sdCardDir, “itcast.txt”);
//上面兩句代碼可以合成一句:
File saveFile = new File(“/sdcard/a.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write(“test”.getBytes());
outStream.close();
第三種: SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)
SQLite是輕量級(jí)嵌入式數(shù)據(jù)庫(kù)引擎,它支持 SQL 語(yǔ)言,
并且只利用很少的內(nèi)存就有很好的性能。
此外它還是開(kāi)源的,任何人都可以使用它。
許多開(kāi)源項(xiàng)目((Mozilla, PHP, Python)都使用了 SQLite
SQLite 由以下幾個(gè)組件組成:SQL 編譯器、內(nèi)核、后端以及附件。
SQLite 通過(guò)利用虛擬機(jī)和虛擬數(shù)據(jù)庫(kù)引擎(VDBE),使調(diào)試、修改和擴(kuò)展 SQLite 的內(nèi)核變得更加方便。
特點(diǎn):
面向資源有限的設(shè)備,
沒(méi)有服務(wù)器進(jìn)程,
所有數(shù)據(jù)存放在同一文件中跨平臺(tái),
可自由復(fù)制。
SQLite 基本上符合 SQL-92 標(biāo)準(zhǔn),和其他的主要 SQL 數(shù)據(jù)庫(kù)沒(méi)什么區(qū)別。它的優(yōu)點(diǎn)就是高效,Android 運(yùn)行時(shí)環(huán)境包含了完整的 SQLite。
SQLite 和其他數(shù)據(jù)庫(kù)更大的不同就是對(duì)數(shù)據(jù)類(lèi)型的支持,創(chuàng)建一個(gè)表時(shí),可以在 CREATE TABLE 語(yǔ)句中指定某列的數(shù)據(jù)類(lèi)型,但是你可以把任何數(shù)據(jù)類(lèi)型放入任何列中。當(dāng)某個(gè)值插入數(shù)據(jù)庫(kù)時(shí),SQLite 將檢查它的類(lèi)型。如果該類(lèi)型與關(guān)聯(lián)的列不匹配,則 SQLite 會(huì)嘗試將該值轉(zhuǎn)換成該列的類(lèi)型。如果不能轉(zhuǎn)換,則該值將作為其本身具有的類(lèi)型存儲(chǔ)。比如可以把一個(gè)字符串(String)放入 INTEGER 列。SQLite 稱(chēng)這為“弱類(lèi)型”(manifest typing.)。 此外,SQLite 不支持一些標(biāo)準(zhǔn)的 SQL 功能,特別是外鍵約束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 還有一些 ALTER TABLE 功能。 除了上述功能外,SQLite 是一個(gè)完整的 SQL 系統(tǒng),擁有完整的觸發(fā)器,交易等等。
Android 集成了 SQLite 數(shù)據(jù)庫(kù) Android 在運(yùn)行時(shí)(run-time)集成了 SQLite,所以每個(gè) Android 應(yīng)用程序都可以使用 SQLite 數(shù)據(jù)庫(kù)。
對(duì)于熟悉 SQL 的開(kāi)發(fā)人員來(lái)時(shí),在 Android 開(kāi)發(fā)中使用 SQLite 相當(dāng)簡(jiǎn)單。但是,由于 JDBC 會(huì)消耗太多的系統(tǒng)資源,所以 JDBC 對(duì)于手機(jī)這種內(nèi)存受限設(shè)備來(lái)說(shuō)并不合適。因此,Android 提供了一些新的 API 來(lái)使用 SQLite 數(shù)據(jù)庫(kù),Android 開(kāi)發(fā)中,程序員需要學(xué)使用這些 API。
數(shù)據(jù)庫(kù)存儲(chǔ)在 data//databases/ 下。 Android 開(kāi)發(fā)中使用 SQLite 數(shù)據(jù)庫(kù) Activites 可以通過(guò) Content Provider 或者 Service 訪(fǎng)問(wèn)一個(gè)數(shù)據(jù)庫(kù)。
下面會(huì)詳細(xì)講解如果創(chuàng)建數(shù)據(jù)庫(kù),添加數(shù)據(jù)和查詢(xún)數(shù)據(jù)庫(kù)。 創(chuàng)建數(shù)據(jù)庫(kù) Android 不自動(dòng)提供數(shù)據(jù)庫(kù)。在 Android 應(yīng)用程序中使用 SQLite,必須自己創(chuàng)建數(shù)據(jù)庫(kù),然后創(chuàng)建表、索引,填充數(shù)據(jù)。
Android 提供了 SQLiteOpenHelper 幫助你創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),你只要繼承 SQLiteOpenHelper 類(lèi),就可以輕松的創(chuàng)建數(shù)據(jù)庫(kù)。SQLiteOpenHelper 類(lèi)根據(jù)開(kāi)發(fā)應(yīng)用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫(kù)使用的邏輯。
SQLiteOpenHelper 的子類(lèi),至少需要實(shí)現(xiàn)三個(gè)方法:
1 構(gòu)造函數(shù),調(diào)用父類(lèi) SQLiteOpenHelper 的構(gòu)造函數(shù)。這個(gè)方法需要四個(gè)參數(shù):上下文環(huán)境(例如,一個(gè) Activity),數(shù)據(jù)庫(kù)名字,一個(gè)可選的游標(biāo)工廠(通常是 Null),一個(gè)代表你正在使用的數(shù)據(jù)庫(kù)模型版本的整數(shù)。
2 onCreate()方法,它需要一個(gè) SQLiteDatabase 對(duì)象作為參數(shù),根據(jù)需要對(duì)這個(gè)對(duì)象填充表和初始化數(shù)據(jù)。
3 onUpgrage() 方法,它需要三個(gè)參數(shù),一個(gè) SQLiteDatabase 對(duì)象,一個(gè)舊的版本號(hào)和一個(gè)新的版本號(hào),這樣你就可以清楚如何把一個(gè)數(shù)據(jù)庫(kù)從舊的模型轉(zhuǎn)變到新的模型。
第四種 使用ContentProvider存儲(chǔ)數(shù)據(jù) ContentProvider其實(shí)也是通過(guò)數(shù)據(jù)庫(kù)的方式來(lái)存儲(chǔ)數(shù)據(jù)的,因此這里不再做詳細(xì)介紹
Android 怎么連接遠(yuǎn)程數(shù)據(jù)庫(kù)
1:要有慧睜服務(wù)器端程序,如ruby等,由服務(wù)器端操作數(shù)據(jù)庫(kù),android客戶(hù)端通過(guò)http收發(fā)json或xml與服務(wù)器交互。
2:android有世神自前返歲己的數(shù)據(jù)庫(kù)sqlite,但那只適合儲(chǔ)存本機(jī)的資料。
關(guān)于android 共享數(shù)據(jù)庫(kù)連接的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過(guò)多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專(zhuān)業(yè)從事IT產(chǎn)品開(kāi)發(fā)和營(yíng)銷(xiāo)公司。廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
文章標(biāo)題:Android數(shù)據(jù)庫(kù)共享連接的實(shí)現(xiàn)方法(android共享數(shù)據(jù)庫(kù)連接)
網(wǎng)站鏈接:http://www.5511xx.com/article/djddgpd.html


咨詢(xún)
建站咨詢(xún)
