




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章目了解數(shù)據(jù)庫(kù)的特點(diǎn)和實(shí)現(xiàn)機(jī)掌握使用實(shí)現(xiàn)本地的操本章教學(xué)內(nèi)數(shù)據(jù)庫(kù)簡(jiǎn)數(shù)據(jù)庫(kù)操數(shù)據(jù)庫(kù)簡(jiǎn)數(shù)據(jù)是一個(gè)開源的嵌入式關(guān)系數(shù)據(jù)庫(kù),在2000年由D.RichardHipp發(fā)布數(shù)據(jù)庫(kù)特?cái)?shù)據(jù)庫(kù)不僅提高了運(yùn)行效率,而且了數(shù)據(jù)庫(kù)作,其他操作可以交給進(jìn)程的數(shù)據(jù)庫(kù)引擎完成數(shù)據(jù)庫(kù)處理機(jī)制數(shù)據(jù)數(shù)據(jù)庫(kù)具有很強(qiáng)的移植性,可以運(yùn)行在,Linux,BSD,MacOSX和一些Unix系統(tǒng),比如數(shù)據(jù)庫(kù)也可以工作在許多嵌入式操作系統(tǒng)下,例如QNX,VxWorks,PalmOS,Symbin和WindowsCE的大約有3萬行標(biāo)準(zhǔn)C代碼,模塊化的設(shè)計(jì)使本章教學(xué)內(nèi)數(shù)據(jù)庫(kù)簡(jiǎn)數(shù)據(jù)庫(kù)操數(shù)據(jù)數(shù)據(jù)手動(dòng)建庫(kù)-啟動(dòng)3工手動(dòng)建立數(shù)據(jù)庫(kù)指的是使用3工具,通過手工輸入命令行成數(shù)據(jù)庫(kù)的建立過3是數(shù)據(jù)庫(kù)自帶的一個(gè)基于命令行的SQL命令執(zhí)行具,并可以顯示命令執(zhí)行結(jié)3工具被集成在Android系統(tǒng)中,用戶在Linux令行界面中輸入3可啟動(dòng)3工具,并得到工具的版本信息,如啟動(dòng)Linux令行界面的方法是在CMD中輸入adb 命 #3Enter“.help”for 手動(dòng)建庫(kù)-查看已有的數(shù)據(jù)在啟動(dòng)3工具后,提示符從“#”變?yōu)椤?gt;”,表示命令行界面進(jìn)入與數(shù)據(jù)庫(kù)的交互模式,此時(shí)可以輸入命令建立、正確退出3工具的方法是使用.exit命>#原則上,每個(gè)應(yīng)用程序的數(shù)據(jù)庫(kù)都保存在各自/data/data/<packagename>/databases #mkdirdatabases#ls–ldrwxrwxrwxrootdrwxr-xr-xsystem2009-07-1815:432009-07-1815:31手動(dòng)建庫(kù)-創(chuàng)建people在數(shù)據(jù)庫(kù)中,每個(gè)數(shù)據(jù)庫(kù)保存在一個(gè)獨(dú)立的文件中,使用存在,3工具則自動(dòng)創(chuàng)建新文件下面的代碼將創(chuàng)建名為people的數(shù)據(jù)庫(kù),在文件系統(tǒng)中將產(chǎn)生名為people.db的數(shù)據(jù)庫(kù)文#3people.dbEnter“.help”for>類別(storage
CAST表達(dá)式中使用的類型名UNSIGNEDBIGNATIVE
對(duì)應(yīng)類nodatatypeDOUBLE
數(shù)據(jù)數(shù)據(jù)手動(dòng)建庫(kù)-建下面的代碼在新創(chuàng)建的數(shù)據(jù)庫(kù)中,構(gòu)造了一個(gè)名為peopleinfo的表,createtablepeopleinfo(_id,name,age,height),_id;name示型,notnull表示這個(gè)屬性一定要填寫,不可以為空值;age表示,整數(shù)height>>createtable...>(_idintegerprimarykey...>nametextnot...>age...>height 手動(dòng)建庫(kù)-查看已經(jīng)創(chuàng)建的為了確認(rèn)數(shù)據(jù)表是否創(chuàng)建成功,可以使用.table命令,顯示據(jù)庫(kù)中的所有從下面的代碼中可以觀察到,當(dāng)前數(shù)據(jù)庫(kù)僅有一個(gè)名為的>> 當(dāng)然,也可以使用.schema命令查看建立表時(shí)使用的SQL命令。如果[.schema示指定表的建立命令CREATETABLEpeopleinfo(_idintegerprimarykeynametextnotnull,ageinteger,height 手動(dòng)建庫(kù)-添加數(shù)向peopleinfo表中添加數(shù)據(jù),使用insertintovalues命 >insertintopeopleinfo>insertintopeopleinfo>insertintopeopleinfo peopleinfo_id是自增加的主鍵,因此在輸入null后,數(shù)據(jù)庫(kù)會(huì)自動(dòng)填寫該123手動(dòng)建庫(kù)-查詢數(shù)在數(shù)據(jù)添加完畢后,使用select命令,顯示指定數(shù)據(jù)表中的所據(jù)信息,命令格式為[selectfrom下面的代碼用來顯示peopleinfo表的所有數(shù)select*select*from 數(shù)數(shù)據(jù)手動(dòng)建庫(kù)-設(shè)置查詢結(jié)果格上面的查詢結(jié)果看起來不是非常直觀,可以使用mode出格式更改為“表格”方式mode命令除了支持常見的columncsv格式、html格式、insert格式、linelist格式、tabs格式和tcl格式>.mode>select*from123>數(shù)據(jù)數(shù)據(jù)手動(dòng)建庫(kù)-修改數(shù)更新數(shù)據(jù)可以使用update命令,命令格式為[update名set性=“新值where件更新數(shù)據(jù)后,同樣使用select命令顯示數(shù)據(jù),則可以確定數(shù)據(jù)正確更下面的代碼將為L(zhǎng)ily數(shù)據(jù)中的高度值更新為>updatepeopleinfosetheight=1.88where>select*fromselect*from123>手動(dòng)建庫(kù)-刪除數(shù)刪除數(shù)據(jù)可以使用delete命令,命令格式為[deletefromwhere下面的代碼將_id為3數(shù)據(jù)從表peopleinfo中刪>deletefrompeopleinfowhere>select*fromselect*from12>手動(dòng)建庫(kù)-3工具命令列3工具還支持大量令,可以使用.help命令查詢令列命說1.bail遇到錯(cuò)誤時(shí)停止,缺省為2顯示數(shù)據(jù)庫(kù)名稱和文件位3.dump?TABLE?將數(shù)據(jù)庫(kù)以SQL文本形式導(dǎo)4.echo開啟和關(guān)閉回5退6.explain開啟或關(guān)閉適當(dāng)輸出模式,如果開啟模式將更改為column,并自動(dòng)設(shè)置手動(dòng)建庫(kù)-3工具命令列命說7.header(s)開啟或關(guān)閉標(biāo)題顯8顯示幫助信9.importFILE將數(shù)據(jù)從文件導(dǎo)入表.indices顯示表中所的列.loadFILE導(dǎo)入擴(kuò)展 設(shè)置輸入格.nullvalue打印時(shí)使用STRING代替.output將輸入保存到文.output將輸入顯示在屏幕 替換標(biāo)準(zhǔn)提示手動(dòng)建庫(kù)-3工具命令列命說退.read在文件中執(zhí)行SQL語(yǔ).schema顯示表的創(chuàng)建語(yǔ).separator更改輸入和導(dǎo)入的分隔顯示當(dāng)前設(shè)置變量.tables顯示符合匹配模式的表.timeout嘗試打開被鎖定的表MS毫.timer開啟或關(guān)閉CPU計(jì)時(shí).widthNUMNUM設(shè)置column模式的寬數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)文件路設(shè)備中的數(shù)據(jù)庫(kù)文件到本adbpull使用DBBrowserfor查看數(shù)數(shù)據(jù)數(shù)據(jù)代碼建在代碼中動(dòng)態(tài)建立數(shù)據(jù)庫(kù)是比較常用的方代碼建publicclassStudDbHelpler OpenHelperpublicstaticfinalStringSQL_CREATE_STUDINFO="createtablestudent(idintegerkeyautoincrement,heightinteger,ageinteger,xm}publicvoidonCreate( Databasedb){}publicvoid Databasedb,intoldVersion,intnewVersion)db.execSQL("droptablestudent");}}代碼建程序開發(fā)不應(yīng)直接調(diào)用onCreate()和onUpgrade()函數(shù),而應(yīng)由OpenHelper類來決定何時(shí)調(diào)用這兩個(gè)函OpenHelper類的getWritableDatabase()函數(shù)getReadableDatabase()函數(shù)是可以直接調(diào)用的函getWritablDaabse()函數(shù)用來建立或打開可讀寫的數(shù)據(jù)庫(kù)對(duì)象,close(如果保存數(shù)據(jù)庫(kù)文件的磁盤空間已滿,調(diào)用getWritableDatabase()getReadablDaabse()函數(shù),獲得一個(gè)只讀的數(shù)據(jù)庫(kù)對(duì)象代碼建如果程序開發(fā)不希望使用OpenHelper類,然后執(zhí)行SQLprivateprivatestaticfinalStringDB_CREATE="createtable"DB_TABLE+"("+KEY_ID+"integerprimarykeyautoincrement,"KEY_NAME+"textnotnull,"+KEY_AGE+"integer,"+KEY_HEIGHT+publicvoidcreate() 數(shù)據(jù)操供的類和方法,這些類和方法更加簡(jiǎn)潔、易用insert(PeoplepeoplequeryAllDataqueryOneData(longid)根據(jù)iddeleteAllDatadeleteOneData(longid)根據(jù)idupdateOneData(longid,Peoplepeople)根據(jù)id數(shù)據(jù)操publicclassDBAdapterpubliclonginsert(Peoplepeople)publiclongdeleteAllData(){publiclongdeleteOneData(longid){}publicPeople[]queryAllData(){}publicPeople[]queryOneData(longid){publiclongupdateOneData(longid,Peoplepeople){privatePeople[]ConvertToPeople(Cursor10.ConvertToPeople(Cursorcursor換為用來數(shù)據(jù)自定義的People類對(duì)重載toString數(shù)據(jù)操publicclassPeoplepublicintID=-publicStringpublicintpublicfloatHeight;publicStringStringresult=result+="ID:"+this.ID+result+= :"+this.Name+result+= :"+this.Age+",result身高:this.Heightreturn 16.數(shù)據(jù)操Database類的公共函數(shù)insert()、delete()、update()query(),封裝了執(zhí)行的添加、刪除、更新和查詢功能的SQL命下面分別介紹如何使用Database類的公共函數(shù),完成數(shù)據(jù)添加、刪除、更新和查詢等操數(shù)數(shù)據(jù)數(shù)據(jù)操insert()函數(shù)的返回值是新數(shù)據(jù)的位置,即ID值。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)操publiclonginsert(Peoplepeople)ContentValuesnewValues=newnewValues.put(KEY_NAME,people.Name);newValues.put(KEY_AGE,people.Age);newValues.put(KEY_HEIGHT,people.Height);returndb.insert(DB_TABLE,null,}數(shù)據(jù)操publicpubliclongdeleteAllData()returndb.delete(DB_TABLE,null, publiclongdeleteOneData(longid)returndb.delete(DB_TABLE,KEY_ID+"="+id, delete()函數(shù)的第1個(gè)參數(shù)是數(shù)據(jù)庫(kù)的表名稱,第2在第2行代碼中,刪除條件為nulldelete()數(shù)數(shù)據(jù)數(shù)據(jù)操后使用Database對(duì)象的update()函數(shù),并指定數(shù)據(jù)的更新條件publiclongupdateOneData(longid,Peoplepeople){ContentValuesupdateValues=newContentValues();updateValues.put(KEY_NAME,people.Name);updateValues.put(KEY_AGE,people.Age);updateValues.put(KEY_HEIGHT,people.Height);returndb.update(DB_TABLE,updateValues,KEY_ID+"="+id,}在代碼的第7行中,update()函數(shù)的第1個(gè)參數(shù)表示數(shù)據(jù)表的名稱,第2update()數(shù)據(jù)操Cursor數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)操Cursor類的方法和說函說數(shù)據(jù)操?gòu)腃ursor中提取數(shù)據(jù)可以參考ConvertToPeople()函數(shù)的實(shí)現(xiàn)方在提取Cursor數(shù)據(jù)中的數(shù)據(jù)前,推薦測(cè)試Cursor中的數(shù)據(jù)數(shù)量,免在數(shù)據(jù)獲取中產(chǎn)生異常,例如代碼的第3行到第5Cursorget<Type>()函數(shù),函數(shù)的輸入值為屬性的序號(hào),為了獲取屬性的序號(hào),可以使用getColumnIde()函數(shù)獲取指定屬性的序號(hào)數(shù)據(jù)操intresultCounts=if(resultCounts==0||return People[]peoples=newfor(inti=0;i<resultCounts;peoples[i]=newpeoples[i].ID=peoples[i].Name=peoples[i].Age=peoples[i].Height= return16.數(shù)據(jù)操要進(jìn)行數(shù)據(jù)查詢就需要調(diào)用Database類的query()函數(shù),CursorCursor.Database.query(Stringtable,String[]columns,selection,String[]selectionArgs,StringgroupBy,Stringhaving,Stringquery()函數(shù)的參數(shù)說位類型+名說1String2String[]3String4String[]5String6String7String數(shù)據(jù)操根據(jù)idpublicpub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《煤炭采購(gòu)合同》
- 2025年企業(yè)用工勞動(dòng)合同模板
- 殘疾兒童護(hù)理員職業(yè)道德
- 華為干部能上能下的案例
- 人力資源培訓(xùn)管理計(jì)劃
- 組織部規(guī)范化課件
- 就業(yè)與創(chuàng)業(yè)行業(yè)定位自我認(rèn)知
- 艾滋病病毒對(duì)免疫系統(tǒng)的破壞
- 北京青年政治學(xué)院復(fù)試指南
- 2025年陜西道路貨運(yùn)駕駛員從業(yè)資格考試題庫(kù)
- 醫(yī)療器械臨床試驗(yàn)質(zhì)量管理規(guī)范培訓(xùn)
- 中小學(xué)語(yǔ)文教師教學(xué)培訓(xùn)核心素養(yǎng)下的整本書閱讀教學(xué)培訓(xùn)課件如何教好孩子閱讀
- 《院感基本知識(shí)》課件
- 急診科培訓(xùn)急性腰痛的鑒別與處理
- 血管外科疾病的診斷和治療
- DISC性格測(cè)試(40題標(biāo)準(zhǔn)版)
- 用人需求申請(qǐng)表
- 版式設(shè)計(jì)網(wǎng)格課件
- 消防安全檢查表(車間)
- 產(chǎn)品報(bào)價(jià)單(5篇)
- 品牌視覺形象設(shè)計(jì)智慧樹知到答案章節(jié)測(cè)試2023年天津科技大學(xué)
評(píng)論
0/150
提交評(píng)論