Android數(shù)據(jù)庫(kù)之 Sqlite
sqllie區(qū)別于我們以前接觸的數(shù)據(jù)庫(kù),它是通過(guò)android自帶的 方法來(lái)驅(qū)動(dòng)數(shù)據(jù)庫(kù)的建立:
建立數(shù)據(jù)庫(kù)表和操作數(shù)據(jù)庫(kù)的大致過(guò)程:
1.讓一個(gè)類 去繼承 SqliteOpenHelper (這是一個(gè)抽象類):
重寫該類的構(gòu)造方法 ;實(shí)現(xiàn)未實(shí)現(xiàn)的方法,其中一個(gè)為 onCreate(SQLiteDatabase db) {} ;還有一個(gè)為 onUpgrade(SQLiteDatabase db, int arg1, int arg2);
oncreate方法是當(dāng)?shù)氐谝淮蝿?chuàng)建表的時(shí)候調(diào)用的方法,當(dāng)你想修改該數(shù)據(jù)庫(kù)表的時(shí)候,我們只是需要改一下構(gòu)造方法的版本這個(gè)屬性,當(dāng)你再次調(diào)用數(shù)據(jù)的方法時(shí)候,系統(tǒng)就自動(dòng)調(diào)用 onUpgrade方法 在原來(lái)的表的基礎(chǔ)上對(duì) 表進(jìn)行修改,所以要是寫該數(shù)據(jù)庫(kù)表(這個(gè)數(shù)據(jù)庫(kù)表已經(jīng)建立了),我們只需要將些修改的放在此方法中即可。
2.去寫具體方法的方法體:
‘當(dāng)調(diào)用到 SqliteOpenHelper的 非靜態(tài)方法getReadableDatabase()或者getWritableDatabase()方法是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的建立和鏈接;
這兩個(gè)方法功能是類似的(通過(guò)查看源代碼得知),getReadableDatabase()方法其實(shí)包含了getWritableDatabase()方法,也就是說(shuō)getReadableDatabase()在實(shí)現(xiàn)的時(shí)候 調(diào)用了getWritableDatabase()這個(gè)方法,區(qū)別在于 getWritableDatabase()在空間已經(jīng)滿的時(shí)候 會(huì)報(bào)異常,證明此時(shí)已經(jīng)不能再往數(shù)據(jù)庫(kù)的表添加?xùn)|西了,所以這個(gè)方法的功能偏向“寫”,也就是對(duì)數(shù)據(jù)的insert,delete,update適合用這個(gè)方法。
getReadableDatabase()在內(nèi)部調(diào)用了getWritableDatabase()這個(gè)方法,但是這個(gè)方法偏向于讀,而不是去操作數(shù)據(jù)庫(kù)的數(shù)據(jù),一般在讀取數(shù)據(jù)庫(kù)的數(shù)據(jù)是用到。
3. 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作:
SQLite數(shù)據(jù)庫(kù)本身就封裝了 數(shù)據(jù)庫(kù)的一些基本操作,也就是數(shù)據(jù)庫(kù)的 CRUD;這里可以調(diào)用具體的 這些方法實(shí)現(xiàn)多數(shù)據(jù)庫(kù)的操作,同樣你也可以自己寫操作數(shù)據(jù)庫(kù)的方法,代碼很簡(jiǎn)單,這里就不寫出了啦。。大致描述下呵呵
posted on 2013-10-30 13:38 順其自然EVO 閱讀(200) 評(píng)論(0) 編輯 收藏 所屬分類: android