新聞中心
隨著移動互聯(lián)網(wǎng)的發(fā)展,越來越多的應(yīng)用程序涌現(xiàn)出來。這些應(yīng)用程序處理的數(shù)據(jù)量越來越大,為了方便數(shù)據(jù)的存儲和管理,安卓系統(tǒng)提供了一種嵌入式的數(shù)據(jù)庫SQLite。SQLite是一種輕量級的關(guān)系型數(shù)據(jù)庫,特別適用于移動應(yīng)用程序。本文將介紹SQLite數(shù)據(jù)庫的使用方法,幫助讀者輕松管理數(shù)據(jù)。

創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元大姚做網(wǎng)站,已為上家服務(wù),為大姚各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
一、SQLite數(shù)據(jù)庫概述
1. SQLite 是什么?
SQLite是一種嵌入式的關(guān)系型數(shù)據(jù)庫,是一款開源軟件。與傳統(tǒng)的客戶端/服務(wù)器關(guān)系型數(shù)據(jù)庫不同,SQLite將數(shù)據(jù)庫引擎嵌入到應(yīng)用程序中,應(yīng)用程序自身就是一個數(shù)據(jù)庫管理系統(tǒng)。這使得SQLite有諸多優(yōu)點,如易于部署、無需安裝、速度快等。
2. SQLite 特性
SQLite因為其輕巧、高效和可靠等特性,在移動應(yīng)用、桌面應(yīng)用、嵌入式設(shè)備、Web 應(yīng)用等領(lǐng)域得到了廣泛應(yīng)用。以下是SQLite的主要特性:
– 零配置:無需安裝,無需配置即可啟動。
– 所有數(shù)據(jù)都存儲在一個磁盤文件中。
– 支持 SQL-92 標(biāo)準(zhǔn)中的大部分查詢語句。
– 非常小,完整的SQLite庫只有200KB左右。
– 跨平臺,支持Windows、Linux、Mac、iOS、Android等多種操作系統(tǒng)。
二、SQLite數(shù)據(jù)庫的使用
1. SQLite 數(shù)據(jù)庫的創(chuàng)建和刪除
SQLite數(shù)據(jù)庫是以文件形式存儲的。首先要創(chuàng)建一個數(shù)據(jù)庫文件,然后創(chuàng)建數(shù)據(jù)表,最后將數(shù)據(jù)插入到數(shù)據(jù)表中。
SQLite數(shù)據(jù)庫的創(chuàng)建方法如下:
“`
//定義一個變量db,并初始化為空
SQLiteDatabase db = null;
//如果已經(jīng)存在數(shù)據(jù)庫文件,直接打開該文件,否則會自動創(chuàng)建一個新文件
db = SQLiteDatabase.openOrCreateDatabase(“mydatabase.db”, null);
“`
使用完數(shù)據(jù)庫后,應(yīng)該釋放資源并關(guān)閉數(shù)據(jù)庫:
“`
//關(guān)閉數(shù)據(jù)庫
db.close();
“`
刪除數(shù)據(jù)庫文件的方法如下:
“`
//刪除數(shù)據(jù)庫文件
context.deleteDatabase(“mydatabase.db”);
“`
2. SQLite 數(shù)據(jù)表的創(chuàng)建和操作
SQLite數(shù)據(jù)庫中的數(shù)據(jù)表是用結(jié)構(gòu)化查詢語言(SQL)創(chuàng)建的。使用SQL命令對數(shù)據(jù)表進行增刪改查等操作。
創(chuàng)建一個數(shù)據(jù)表的方法如下:
“`
//定義一個創(chuàng)建表的SQL語句
String createTableSQL = “CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”;
//執(zhí)行SQL語句
db.execSQL(createTableSQL);
“`
向已經(jīng)創(chuàng)建的數(shù)據(jù)表中插入數(shù)據(jù)的方法如下:
“`
//定義一個插入語句
String insertSQL = “INSERT INTO mytable (id, name, age) VALUES (1, ‘張三’, 20)”;
//執(zhí)行SQL語句
db.execSQL(insertSQL);
“`
從數(shù)據(jù)表中查詢數(shù)據(jù)的方法如下:
“`
//定義一個查詢語句
String querySQL = “SELECT * FROM mytable”;
//執(zhí)行SQL語句,返回一個 Cursor 類型的結(jié)果集
Cursor cursor = db.rawQuery(querySQL, null);
//遍歷結(jié)果集,打印查詢結(jié)果
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex(“id”));
String name = cursor.getString(cursor.getColumnIndex(“name”));
String age = cursor.getString(cursor.getColumnIndex(“age”));
Log.d(TAG, “id=”+id+”, name=”+name+”, age=”+age);
}
//關(guān)閉結(jié)果集
cursor.close();
“`
修改數(shù)據(jù)表中數(shù)據(jù)的方法如下:
“`
//定義一個更新語句
String updateSQL = “UPDATE mytable SET name = ‘李四’ WHERE id = 1”;
//執(zhí)行SQL語句
db.execSQL(updateSQL);
“`
刪除數(shù)據(jù)表中數(shù)據(jù)的方法如下:
“`
//定義一個刪除語句
String deleteSQL = “DELETE FROM mytable WHERE id = 1”;
//執(zhí)行SQL語句
db.execSQL(deleteSQL);
“`
三、結(jié)論
SQLite 數(shù)據(jù)庫是一款輕量級的數(shù)據(jù)庫,非常適合移動應(yīng)用程序中的數(shù)據(jù)存儲和管理。本文介紹了 SQLite 數(shù)據(jù)庫的創(chuàng)建和刪除,數(shù)據(jù)表的創(chuàng)建和操作等方面的使用方法。通過本文的介紹,讀者可以輕松地使用 SQLite 數(shù)據(jù)庫管理數(shù)據(jù)。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
android開發(fā)怎么存儲數(shù)據(jù)
Android平臺開發(fā)過程中,進行數(shù)據(jù)存儲的方式有五種,一下是這五種數(shù)據(jù)存儲的總結(jié):
之一種: 使用SharedPreferences存儲數(shù)據(jù)
適用范圍:保存少量的數(shù)據(jù),且這些數(shù)據(jù)的格式非常簡單:字符串型、基本類型的值。比如應(yīng)用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等
核心原理:保存基于XML文件存儲的key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。通過DDMS的File Explorer面板,展開文件瀏覽樹,很明顯SharedPreferences數(shù)據(jù)總是存儲在/data/data//shared_prefs目錄下。SharedPreferences對象本身只能獲取數(shù)據(jù)而不支持存儲和修改,存儲修改是通過SharedPreferences.edit()獲取的內(nèi)部接口Editor對象實現(xiàn)。 SharedPreferences本身是一 個接口,程序無法直接創(chuàng)建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中name表示要操作的xml文件名,第二個參數(shù)具體如下:
Context.MODE_PRIVATE: 指定該SharedPreferences數(shù)據(jù)只能被本應(yīng)用程序讀、寫。
Context.MODE_WORLD_READABLE: 指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀,但不能寫。
Context.MODE_WORLD_WRITEABLE: 指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀,寫
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有數(shù)據(jù)
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key對應(yīng)的數(shù)據(jù),其中xxx 可以是boolean,float,int等各種基本類型據(jù)
SharedPreferences.Editor remove(): 刪除SharedPreferences中指定key對應(yīng)的數(shù)據(jù)項
boolean commit(): 當(dāng)Editor編輯完成后,使用該方法提交修改
實際案例:運行界面如下
這里只提供了兩個按鈕和一個輸入文本框,布局簡單,故在此不給出界面布局文件了,程態(tài)告序核心代碼如下:
讀寫其他應(yīng)用的SharedPreferences: 步驟如下
1、在創(chuàng)建SharedPreferences時,指定MODE_WORLD_READABLE模式,表明該SharedPreferences數(shù)據(jù)可以被其他程序讀取
2、創(chuàng)建其他應(yīng)用程序?qū)?yīng)的Context:
Context pvCount = createPackageContext(“com.tony.app”, Context.CONTEXT_IGNORE_SECURITY);這里的com.tony.app就是其他程序的包名
3、使用其他程序的Context獲取對應(yīng)的SharedPreferences
SharedPreferences read = pvCount.getSharedPreferences(“l(fā)ock”, Context.MODE_WORLD_READABLE);
4、如果是寫入數(shù)據(jù),使用Editor接口即可,所有其他操作均和前面一致。
SharedPreferences對象與SQLite數(shù)據(jù)庫相比,免去了創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數(shù)據(jù)類型,比如其無法進行條件查詢等。所以不論SharedPreferences的數(shù)據(jù)存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完游簡全替代如SQLite數(shù)據(jù)庫這樣的其他數(shù)據(jù)存儲方式。
第二種: 文件存儲數(shù)據(jù)
核心原理: Context提供了兩個方法來打開數(shù)據(jù)文神閉褲件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),這兩個方法之一個參數(shù) 用于指定文件名,第二個參數(shù)指定打開文件的模式。具體有以下值可選:
MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪問,在該模式下,寫入的內(nèi)容會覆蓋原文件的內(nèi)容,如果想把新寫入的內(nèi)容追加到原文件中??? 以使用Context.MODE_APPEND
MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件。
MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀?。?/p>
MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫入。
除此之外,Context還提供了如下幾個重要的方法:
getDir(String name , int mode):在應(yīng)用程序的數(shù)據(jù)文件夾下獲取或者創(chuàng)建name對應(yīng)的子目錄
File getFilesDir():獲取該應(yīng)用程序的數(shù)據(jù)文件夾得絕對路徑
String fileList():返回該應(yīng)用數(shù)據(jù)文件夾的全部文件
實際案例:界面沿用上圖
核心代碼如下:
openFileOutput()方法的之一參數(shù)用于指定文件名稱,不能包含路徑分隔符“/” ,如果文件不存在,Android 會自動創(chuàng)建它。創(chuàng)建的文件保存在/data/data//files目錄,如: /data/data/cn.tony.app/files/message.txt,
下面講解某些特殊文件讀寫需要注意的地方:
讀寫sdcard上的文件
其中讀寫步驟按如下進行:
1、調(diào)用Environment的getExternalStorageState()方法判斷手機上是否插了sd卡,且應(yīng)用程序具有讀寫SD卡的權(quán)限,如下代碼將返回true
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
2、調(diào)用Environment.getExternalStorageDirectory()方法來獲取外部存儲器,也就是SD卡的目錄,或者使用”/mnt/sdcard/”目錄
3、使用IO流操作SD卡上的文件
注意點:手機應(yīng)該已插入SD卡,對于模擬器而言,可通過mksdcard命令來創(chuàng)建虛擬存儲卡
必須在AndroidManifest.xml上配置讀寫SD卡的權(quán)限
案例代碼:
第三種:SQLite存儲數(shù)據(jù)
SQLite是輕量級嵌入式數(shù)據(jù)庫引擎,它支持 SQL 語言,并且只利用很少的內(nèi)存就有很好的性能?,F(xiàn)在的主流移動設(shè)備像Android、iPhone等都使用SQLite作為復(fù)雜數(shù)據(jù)的存儲引擎,在我們?yōu)橐苿釉O(shè)備開發(fā)應(yīng)用程序時,也許就要使用到SQLite來存儲我們大量的數(shù)據(jù),所以我們就需要掌握移動設(shè)備上的SQLite開發(fā)技巧
SQLiteDatabase類為我們提供了很多種方法,上面的代碼中基本上囊括了大部分的數(shù)據(jù)庫操作;對于添加、更新和刪除來說,我們都可以使用
以上三個方法的之一個參數(shù)都是表示要操作的表名;insert中的第二個參數(shù)表示如果插入的數(shù)據(jù)每一列都為空的話,需要指定此行中某一列的名稱,系統(tǒng)將此列設(shè)置為NULL,不至于出現(xiàn)錯誤;insert中的第三個參數(shù)是ContentValues類型的變量,是鍵值對組成的Map,key代表列名,value代表該列要插入的值;update的第二個參數(shù)也很類似,只不過它是更新該字段key為最新的value值,第三個參數(shù)whereClause表示W(wǎng)HERE表達式,比如“age > ? and age
至此,可對數(shù)據(jù)庫進行sql操作。
4、sqlite常用命令
>.databases產(chǎn)看當(dāng)前數(shù)據(jù)庫
>.tables查看當(dāng)前數(shù)據(jù)庫中的表
>.help-sqlite3幫助
>.schema各個表的生成語句
以上便是android開發(fā)存儲數(shù)據(jù)的五種方法!
可世裂慎以使用源汪使用sqlite、sharedpreferences自帶的來存搜敬儲數(shù)據(jù),也可以自己以文件存到存儲卡上
關(guān)于安卓數(shù)據(jù)庫使用教程的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港云服務(wù)器機房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
文章題目:安卓數(shù)據(jù)庫使用教程:讓你輕松管理數(shù)據(jù)(安卓數(shù)據(jù)庫使用教程)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/dhdgids.html


咨詢
建站咨詢
