版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Android物聯(lián)網(wǎng)應用程序開發(fā)資源轉化系統(tǒng)教材任務實現(xiàn)知識準備任務目標目 錄 任務3 購物信息的查詢項目4 數(shù)據(jù)存儲的實現(xiàn)任務使用項目2任務6中的設計界面結果,實現(xiàn)使用SQLite數(shù)據(jù)庫查詢商品訂單信息。通過智能商超移動端設定的特定場景情節(jié),訂單信息已經(jīng)在任務2的步驟中實現(xiàn)了訂單數(shù)據(jù)錄入,數(shù)據(jù)庫中已經(jīng)保存了訂單的測試數(shù)據(jù)。當點擊任務2界面的盤點查看按鈕后,界面跳轉到訂單列表新界面并檢索MyDb.db數(shù)據(jù)庫中的所有訂單數(shù)據(jù),通過ListView的形式顯示出來?!救蝿漳繕恕?. 了解SQLiteDatabase工具類操作數(shù)據(jù)庫的常用方法2. 掌握SQLite數(shù)據(jù)檢索操作方法1. SQLiteOp
2、enHelper類【知識準備】 在任務2中我們使用SQLiteDatabase工具類操作數(shù)據(jù)庫,已經(jīng)基本達到了設計需要的效果。不過Android 提供了更高級的工具類SQLiteOpenHelper來創(chuàng)建一個數(shù)據(jù)庫,你只要繼承 SQLiteOpenHelper 類,就可以輕松的創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper 類根據(jù)開發(fā)應用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。1. SQLiteOpenHelper類【知識準備】 通過重寫SQLiteOpenHelper的構造函數(shù)、onCreate()和onUpgrade()方法來處理數(shù)據(jù)庫的創(chuàng)建和更新到新的版本。Android API中提
3、供了2個SQLiteOpenHelper類的構造方法,分別介紹如下:1)SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) 2)SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler)1. SQLiteOpenHelper類【知識準備】 子類通過繼
4、承實現(xiàn)SQLiteOpenHelper提供便捷的操作數(shù)據(jù)庫的方法。在子類構造函數(shù)中需要填入1)Context context:上下文環(huán)境2)String name:數(shù)據(jù)庫名稱3)SQLiteDatabase.CursorFactory factory:游標工廠4)int version:數(shù)據(jù)庫版本 5)DatabaseErrorHandler errorHandler:異常報告(選用)。 子類另外必須實現(xiàn)onCreate()和onUpgrade()這兩個抽象方法。1. SQLiteOpenHelper類【知識準備】 方法名稱含義getDatabaseName()獲取數(shù)據(jù)庫名稱getReadab
5、leDatabase()以讀寫的方式打開SQLiteDatabase數(shù)據(jù)庫引用getWritableDatabase()以寫的方式打開SQLiteDatabase數(shù)據(jù)庫引用onCreate(SQLiteDatabase db)第一次創(chuàng)建數(shù)據(jù)庫時的回調(diào)方法onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)更新數(shù)據(jù)庫版本時的回調(diào)方法onOpen(SQLiteDatabase db)當數(shù)據(jù)庫打開時的回調(diào)方法close()關閉數(shù)據(jù)庫SQLiteOpenHelper常用方法說明1. SQLiteOpenHelper類【知識準備】SQL
6、iteOpenHelper子類中的onCreate()是在數(shù)據(jù)庫第一次生成的時候會調(diào)用這個方法,也就是說,只有在創(chuàng)建數(shù)據(jù)庫的時候才會調(diào)用(特殊情況例外)。一般在這個方法里邊生成數(shù)據(jù)庫表。onUpgrade()方法是當數(shù)據(jù)庫需要升級時調(diào)用。onOpen()方法是當打開數(shù)據(jù)庫時的回調(diào)函數(shù)(用的幾率比較?。etReadableDatabase()是以先執(zhí)行getWritableDatabase(),失敗后才調(diào)用。1. SQLiteOpenHelper類【知識準備】getWritableDatabase()getReadableDatabase() 。 但getWritableDatabase()
7、方法以讀寫方式打開數(shù)據(jù)庫,一旦數(shù)據(jù)庫的磁盤空間滿了,數(shù)據(jù)庫就只能讀而不能寫,getWritableDatabase()打開數(shù)據(jù)庫就會出錯。getReadableDatabase()方法先以讀寫方式打開數(shù)據(jù)庫,倘若使用如果數(shù)據(jù)庫的磁盤空間滿了,就會打開失敗,當打開失敗后會繼續(xù)嘗試以只讀方式打開數(shù)據(jù)庫。這兩個方法都可以獲取一個用于操作數(shù)據(jù)庫的SQLiteDatabase實例1. SQLiteOpenHelper類【知識準備】 按照智能商超設定的業(yè)務規(guī)則,可以使用SQLiteOpenHelper工具類子類創(chuàng)建本單元應用(androiddemo4_3)的數(shù)據(jù)庫MyDb.db; 下面MyDb子類在構造方
8、法中調(diào)用父類SQLiteOpenHelper的SQLiteOpenHelper(context, name,factory, version) 構造方法實現(xiàn)MyDb.db數(shù)據(jù)庫的創(chuàng)建,數(shù)據(jù)庫默認存儲在Android設備的/data/data/ databases/文件夾中。1. SQLiteOpenHelper類【知識準備】 執(zhí)行完建庫代碼后,可以通過DDMS的File Explorer選項卡找到此數(shù)據(jù)庫文件(如圖4-7所示),通過下圖右上角的紅色導出按鈕把數(shù)據(jù)庫文件導出到文件系統(tǒng)中,使用SQLite可視化管理工具打開數(shù)據(jù)庫文件。MyDb.db數(shù)據(jù)庫2. SQLite數(shù)據(jù)檢索操作【知識準備】
9、在基于SQLiteOpenHelper類已經(jīng)實現(xiàn)的創(chuàng)建數(shù)據(jù)庫和新增數(shù)據(jù)的基礎上,可以對數(shù)據(jù)庫表進行數(shù)據(jù)檢索操作。依據(jù)Android API中SQLiteDatabase提供的數(shù)據(jù)操作方法,下面通過、表4-7列出常用的SQLiteDatabase數(shù)據(jù)檢索操作方法和數(shù)據(jù)游標Course的操作方法。 方法名稱含義query(String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy)檢索帶有條件表中的記錄rawQuery(Stri
10、ng sql, String selectionArgs)檢索帶占位符的SQL語句表4-62. SQLite數(shù)據(jù)檢索操作【知識準備】 方法名稱含義moveToFirst()將Curor的游標移動到第一條moveToLast()將Curor的游標移動到最后一條move(int offset)將Curor的游標移動到指定IDmoveToNext()將Curor的游標移動到下一條getCount()獲取Cursor 總記錄條數(shù)getInt(int columnIndex)根據(jù)索引ID 獲取int類型字段getString(int columnIndex)根據(jù)索引ID 獲取String類型字段getB
11、lob(int columnIndex)根據(jù)索引ID 獲取Blob類型字段表4-72. SQLite數(shù)據(jù)檢索操作【知識準備】數(shù)據(jù)檢索的一般操作過程如下:1)子類繼承SQLiteOpenHelper2)通過構造器初始化打開或創(chuàng)建數(shù)據(jù)庫3)創(chuàng)建數(shù)據(jù)庫表結構4)更行數(shù)據(jù)庫版本操作5)執(zhí)行數(shù)據(jù)檢索操作6)遍歷游標Course7)關閉數(shù)據(jù)庫:【任務實現(xiàn)】1. 在Eclipse中創(chuàng)建一個Android工程,命名為AndroidDemo4-2。并把項目2任務2的界面導入到此項目中2界面設計及初始化 根據(jù)項目2任務2和任務6界面設計結果,熟悉res/layout/activity_main.xml,activ
12、ity_search.xml和item.xml界面元素的相關設置。在MainActivity界面實現(xiàn)的基礎上添加跳轉到SearchActivity的邏輯代碼。在SearchActivity中實現(xiàn)界面控件的初始化和數(shù)據(jù)的顯示。 在應用程序初始化的MainActivity會實例化界面上的所有控件,這里把界面的控件初始化存放在initView()中,并在MainActivity的onCreate(Bundle savedInstanceState)方法中調(diào)用initView()。AndroidDemo4_3srccomexampleandroiddemo4_3MainActivity.java是詳細
13、代碼。界面初始化具體代碼請參考書籍中的代碼?!救蝿諏崿F(xiàn)】在應用程序由MainActivity跳轉到SearchActivity后會實例化SearchActivity界面上的所有控件,這里只在SearchActivity的onCreate()方法中查詢數(shù)據(jù)庫并顯示在ListView中。 AndroidDemo4_3srccomexampleandroiddemo4_3SearchActivity.java是詳細代碼。界面初始化和加載數(shù)據(jù)主要代碼請參考書籍中的代碼?!救蝿諏崿F(xiàn)】3. 使用SQLiteOpenHelper父類創(chuàng)建MyDb子類 MyDb.java類是一個包含數(shù)據(jù)庫操作的工具類,它具有數(shù)據(jù)庫的初始化創(chuàng)建功能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管線改造合同范本
- 海淀區(qū)農(nóng)村集體經(jīng)濟合同管理辦法
- 合同裁判共同規(guī)則
- 角膜炎的治療與護理
- 2024-2025學年新教材高中地理第五章自然環(huán)境的整體性與差異性單元評價含解析湘教版選擇性必修一
- 2024房產(chǎn)抵押貸款的合同協(xié)議書
- 英文調(diào)查報告(共16篇)
- 精準營銷策略15篇
- 無人機技術的應用前景
- 2024店面租賃合同模板「標準版」
- 設備維保的現(xiàn)狀與趨勢
- 皮膚菌群多樣性研究
- 國際私法期末復習題及答案
- 化學品管理的消防安全
- 康復科科室規(guī)劃建設
- C40混凝土配合比設計書-完成
- 物業(yè)管家培訓課件
- 中醫(yī)養(yǎng)生學教學大綱
- 郵政安全生產(chǎn)消防培訓課件
- 泌尿系腫瘤流行病學調(diào)查
- 煤礦安全生產(chǎn)信息化建設
評論
0/150
提交評論