《第一行代码》学习笔记24-持久化技术(3)
1.SQLite-輕量級的關(guān)系型數(shù)據(jù)庫,運算速度非常快,占用資源很少,通常需要幾百K的內(nèi)存,故特別適合在移動設(shè)備上使用。
2.SQLite支持標準的SQL語法,遵循數(shù)據(jù)庫的ACID事務(wù),比一般的數(shù)據(jù)庫簡單的多,甚至不用設(shè)置用戶名和密碼即可使用。
3.Android為讓我們更加方便地管理數(shù)據(jù)庫,提供了一個SQLiteOpenHelper幫助類,借助該類對數(shù)據(jù)庫進行創(chuàng)建和升級。
4.SQLiteOpenHelper是個抽象類,使用它需要創(chuàng)建一個自己的幫助類去繼承它。其有兩個抽象方法,是onCreate()和onUpgrade(),
必須在自己的幫助類里重寫這兩個方法,再分別在兩個方法中去實現(xiàn)創(chuàng)建,升級數(shù)據(jù)庫的邏輯。
5.SQLiteOpenHelper中有兩個非常重要的實例方法:getReadableDatabase()和getWritableDatabase()。這兩個方法都可以創(chuàng)建或打開一個現(xiàn)有
的數(shù)據(jù)庫(如果數(shù)據(jù)庫已存在則直接打開,否則創(chuàng)建一個新的數(shù)據(jù)庫),并返回一個可對數(shù)據(jù)庫進行讀寫操作的對象。不同的是,當(dāng)數(shù)據(jù)庫不可寫入
時(如磁盤空間已滿)getReadableDatabase()方法返回的對象將以只讀的方式去打開數(shù)據(jù)庫,而getWritableDatabase()方法則出現(xiàn)異常。
6.SQLiteOpenHelper有兩個構(gòu)造方法可供重寫,一般使用參數(shù)少一點的那個構(gòu)造方法。該構(gòu)造方法中接收四個參數(shù),第一個是Context,必須要有它
才能對數(shù)據(jù)庫進行操作;第二個是數(shù)據(jù)庫名,創(chuàng)建數(shù)據(jù)庫時使用的就是這里指定的名稱;第三個允許我們在查詢數(shù)據(jù)的時候返回一個自定義的Cursor,
一般是傳入null;第四個表示當(dāng)前數(shù)據(jù)庫的版本號,可用于對數(shù)據(jù)庫升級操作。
7.構(gòu)建出SQLiteOpenHelper的實例后,再調(diào)用getReadableDatabase()或getWritableDatabase()方法就能創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫文件會存放在
/data/data//databases/目錄下。此時,重寫的onCreate()方法也會得到執(zhí)行,故通常會在這里去處理一些創(chuàng)建表的邏輯。
8.創(chuàng)建一個名為BookStore.db的數(shù)據(jù)庫,在這個數(shù)據(jù)庫中新建一張Book表,表中有id(主鍵),作者,價格,頁數(shù)和書名等列。
Book表的建表語句如下:
integer:整型,real:浮點型,text:文本類型,blob:二進制類型。上述建表語句,使用了primary key將id列設(shè)為主鍵,并用autoincrement關(guān)鍵字
表示id列是自增長的。
轉(zhuǎn)載于:https://www.cnblogs.com/Iamasoldier6/p/5025924.html
總結(jié)
以上是生活随笔為你收集整理的《第一行代码》学习笔记24-持久化技术(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)wamp2.5虚拟主机Virtua
- 下一篇: 折纸比山高