《Android程序設計教程》課件第七章 Android數(shù)據(jù)存儲_第1頁
《Android程序設計教程》課件第七章 Android數(shù)據(jù)存儲_第2頁
《Android程序設計教程》課件第七章 Android數(shù)據(jù)存儲_第3頁
《Android程序設計教程》課件第七章 Android數(shù)據(jù)存儲_第4頁
《Android程序設計教程》課件第七章 Android數(shù)據(jù)存儲_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第七章Android數(shù)據(jù)存儲目錄7.1數(shù)據(jù)存儲方式簡介7.2文件存儲7.3SharedPreferences的使用 7.4SQLite數(shù)據(jù)庫存儲7.5LitePal操作數(shù)據(jù)庫學習目標了解數(shù)據(jù)存儲方式的特點掌握文件存儲、SharedPreferences存儲的使用掌握SQLite數(shù)據(jù)庫的增、刪、改、查的使用掌握LitePal插件操作數(shù)據(jù)庫7.1數(shù)據(jù)存儲方式簡介Android中五種不同數(shù)據(jù)存儲方式:文件存儲SharedPreferences存儲SQLite數(shù)據(jù)庫存儲網(wǎng)絡存儲ContentProvider7.2文件存儲Android中的文件存儲與Java中的文件存儲類似,都是以I/O流的形式把數(shù)據(jù)存儲到文件中。不同點在于Android中的文件存儲分為外部存儲和內(nèi)部存儲兩種。外部存儲就是指把文件存儲到一些外部設備上,例如SD卡、設備內(nèi)的存儲卡等,屬于永久性存儲方式。使用這種類型存儲的文件可以共享給其他的應用程序使用,也可以被刪除、修改、查看等,它不是一種安全的存儲方式。內(nèi)部存儲是指將應用程序的數(shù)據(jù),以文件的形式存儲在應用程序的目錄下(data/data/<packagename>/files)。這個文件屬于該應用程序私有,如果其他應用程序想要操作本應用程序的文件,就需要設置權(quán)限。內(nèi)部存儲的文件隨著應用程序的卸載而刪除,隨著應用程序的生成而創(chuàng)建。7.3SharedPreferences的使用SharedPreferences是一個輕量級的存儲類,特別適合用于保存軟件配置參數(shù),例如用于登錄時的用戶名、密碼、性別等參數(shù)。SharedPreferences保存數(shù)據(jù),其實質(zhì)是用xml文件存放數(shù)據(jù),文件存放在/data/data/<packagename>/shared_prefs目錄下。在使用SharedPreferences進行數(shù)據(jù)操作的基本步驟如下:(1)使用getSharedPreferences()方法獲取一個SharedPreferences實例對象。(2)使用SharedPreferences實例對象的edit()方法,獲取SharedPreferences.Editor編輯對象。(3)使用SharedPreferences.Editor編輯對象的putXxx()方法來保存數(shù)據(jù)。(4)使用SharedPreferences對象的getXxx()方法來讀取數(shù)據(jù)。(5)使用SharedPreferences.Editor編輯對象的commit()方法將數(shù)據(jù)提交到XML文件中。7.4SQLite數(shù)據(jù)庫存儲SQLite數(shù)據(jù)庫比傳統(tǒng)的數(shù)據(jù)庫更加適用于嵌入式系統(tǒng),因為它占用空間非常少,運行高效可靠,可移植性好,并且提供了零配置(zero-configuration)運行模式。SQLite數(shù)據(jù)庫的優(yōu)勢在于其嵌入到使用它的應用程序中。這樣不僅提高了運行效率,而且屏蔽了數(shù)據(jù)庫使用和管理的復雜性,程序僅需要進行最基本的數(shù)據(jù)操作,其它操作可以交給進程內(nèi)部的數(shù)據(jù)庫引擎完成。7.4.1創(chuàng)建數(shù)據(jù)庫Android為了能夠更加方便地管理數(shù)據(jù)庫,專門提供了一個SQLiteOpenHelper幫助類。該類是一個抽象類,具有onCreate()和onUpgrade()兩個抽象方法,這就意味著我們需要創(chuàng)建一個自己的幫助類去繼承它,然后分別在這兩個方法中去實現(xiàn)創(chuàng)建、升級數(shù)據(jù)庫的邏輯。SQLiteOpenHelper幫助類中還有兩個非常重要的實例方法:getReadableDatabase()和getWritableDatabase()方法。這兩個方法都可以創(chuàng)建或打開一個現(xiàn)有的數(shù)據(jù)庫,并返回一個可對數(shù)據(jù)庫進行讀寫操作的對象。SQLiteOpenHelper幫助類中還有兩個構(gòu)造方法可供重寫,一般使用參數(shù)少一點的構(gòu)造方法即可。這個構(gòu)造方法中接收4個參數(shù),第一個參數(shù)是Context,必須要有它才能對數(shù)據(jù)庫進行操作;第二個參數(shù)是數(shù)據(jù)庫名,創(chuàng)建數(shù)據(jù)庫時使用的就是這里指定的名稱;第三個參數(shù)允許我們在查詢數(shù)據(jù)的時候返回一個自定義的Cursor,一般都是傳入null;第四個參數(shù)表示當前數(shù)據(jù)庫的版本號,可用于對數(shù)據(jù)庫進行升級操作。7.4.2升級數(shù)據(jù)庫當我們需要對數(shù)據(jù)庫中的表進行刪除或增加時,就可以使用SQLiteOpenHelper幫助類中onUpgrade()方法。7.4.3添加數(shù)據(jù)對數(shù)據(jù)的操作無非有四種,即CRUD,其中C代表添加(Create),R代表查詢(Retrieve),U代表更新(Update),D代表刪除(Delete)。Android提供了一系列的輔助性方法,使得在Android中不去編寫SQL語句,也能輕松完成所有的CRUD操作。SQLiteDatabase類中提供了一個insert()方法,這個方法就是專門用于添加數(shù)據(jù)的,其返回值是新數(shù)據(jù)插入的位置,即ID值。它接受三個參數(shù):第一個參數(shù)指定需要添加數(shù)據(jù)的表名;第二個參數(shù)用于在未指定添加數(shù)據(jù)的情況下給某些可為空的列自動賦值NULL,直接傳入null即可;第三個參數(shù)是一個ContentValues對象,它提供了一系列的put()方法重載,用于向ContentValues中添加數(shù)據(jù),只需要將表中的每個列名以及相應的待添加數(shù)據(jù)傳入即可。7.4.4更新數(shù)據(jù)SQLiteDatabase類中也提供了一個非常好用的update()方法,用于對數(shù)據(jù)進行更新。這個方法接收四個參數(shù),第一個參數(shù)和insert()方法一樣,也是表名,在這里指定去更新哪張表里的數(shù)據(jù);第二個參數(shù)是ContentValues對象,就是要把更新數(shù)據(jù)在這里組裝進去;第三、第四個參數(shù)用于約束更新某一行或某幾行中的數(shù)據(jù),不指定的話就是默認更新所有行。7.4.5刪除數(shù)據(jù)SQLiteDatabase類中也提供了一個非常好用的delete()方法,用于刪除數(shù)據(jù)。這個方法有三個參數(shù),第一個參數(shù)仍然是表名,第二、第三個參數(shù)是用于約束刪除某一行或某幾行的數(shù)據(jù),不指定的話默認就是刪除所有行。7.4.6查詢數(shù)據(jù)SQLiteDatabase類中還提供了一個query()方法用于對數(shù)據(jù)進行查詢。這個方法的參數(shù)非常復雜,最短的一個方法重載也需要傳入7個參數(shù)。7.5LitePal操作數(shù)據(jù)庫LitePal是一款開源的Android數(shù)據(jù)庫框架,它采用了對象關系映射(ORM)的模式,并將我們平時開發(fā)最常用到的一些數(shù)據(jù)庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表和增刪改查的操作。7.5.1配置LitePalLitePal是一款開源的Android數(shù)據(jù)庫框架,采用了對象關系映射的模式。首先需要在GitHub上去下載LitePal開源庫,其下載地址是/LitePalFramework/LitePal,根據(jù)自己的需要下載相應版本就可以了。(1)創(chuàng)建一個Android應用程序,將下載的jar文件拷貝到app/libs目錄里,然后右鍵點擊這個包,在彈出的菜單中選擇“AddAsLibrary”選項,在彈出的對話框中點擊“確定”按鈕即可。打開app/build.gradle文件,在dependencies閉包中看到自動添加了如下內(nèi)容:implementationfiles('libs/litepal-1.6.1.jar')則說明LitePal開源庫加載成功。其中最后的1.6.1是版本號的意思。(2)需要配置litepal.xml文件。右擊app/src/main目錄→New→Directory,創(chuàng)建一個assets目錄,然后在assets目錄下再新建一個litepal.xml文件,并編輯litepal.xml文件中的內(nèi)容如下。<?xmlversion="1.0"encoding="UTF-8"?><litepal><dbnamevalue="BookStore"></dbname><versionvalue="1"></version><list></list></litepal>其中,<dbname

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論