今天為大家介紹一款新的安卓數(shù)據(jù)庫框架LitePal.這個(gè)框架的有點(diǎn)就是簡介明了,拋棄了原生SQLiteopenHelpler的復(fù)雜代碼苍碟,他采用了ORM對象映射的模式來進(jìn)行快速開發(fā)祟印。下面講一下配置:
1 在depenmdencie中導(dǎo)入 :
2 配置 ?litepal.xml文件,app/src/main目錄下新建一個(gè)大 assets目錄,然后在該目錄下新建一個(gè)litepal.xml文件編輯內(nèi)容
dbname 顯然就是 數(shù)據(jù)庫的名字,version 肯定就是版本號了啊芝雪。list 指定的是映射模型這個(gè)很關(guān)鍵。
3? 還需要配置一下 listpalApplication? 修改 androidManifest.xml文件的啟動(dòng)Application,換成listpalApplication综苔,記住要更換完整的包名惩系。這樣app啟動(dòng)的時(shí)候 該框架才可以正常使用。配置工作到此結(jié)束如筛。
下面開始創(chuàng)建和升級數(shù)據(jù)庫
首先建立表的話堡牡,肯定需要設(shè)置各種各樣的屬性,因?yàn)長Itepal是關(guān)系型數(shù)據(jù)庫所以建立的表的對應(yīng)的字段名就可以轉(zhuǎn)換成對應(yīng)的實(shí)體類的屬性名來進(jìn)行控制杨刨。這樣就會非常簡單晤柄,我們就可以用面相對象的思維來增刪改差對應(yīng)的對象屬性從而達(dá)到操作數(shù)據(jù)庫表的結(jié)果。下面是一個(gè)實(shí)體類 也就是用戶表 user
我們定義了 三個(gè)屬性 并款快捷鍵生成了對應(yīng)的setter 和 getter方法 ? 妖胀,此時(shí)這個(gè) user類 就對應(yīng)數(shù)據(jù)庫的 user表芥颈。
關(guān)鍵點(diǎn)來了,還需要將這個(gè)類名完整的配置到 之前的設(shè)置litepal.xml文件當(dāng)中 如下:
注意:一定要使用完整的類名
在一個(gè)activity的oncreate方法里面運(yùn)行 Connector.getDatabase();這樣簡單的數(shù)據(jù)庫操作創(chuàng)建完成赚抡,查看是否成功可通過adbshell文件查看爬坑,這里不再展示。
注意問題:litepal升級數(shù)據(jù)庫非常簡單涂臣,只需要在對應(yīng)的實(shí)體類里面加上對應(yīng)屬性即可增加對應(yīng)字段盾计,如果再想建議張表 就在建一個(gè)實(shí)體類,然后在配置文件里 maaping 一個(gè)新的 完整包名的實(shí)體類即可肉康,最后記得運(yùn)行之前一定要給 version 版本號 +1這樣才能保證之前的數(shù)據(jù)庫字段對應(yīng)數(shù)據(jù)完整保留闯估。
添加數(shù)據(jù):
1 user user=new user();user.setAge(10);user.setsex(100);user.save();
2 user的是實(shí)體類要繼承 DataSupport灼舍。 添加數(shù)據(jù)就是這么簡單吼和,記得最后 save(DataSupport類提供的方法)方法保存。
更新數(shù)據(jù):
1 更新數(shù)據(jù)的話 會對之前是否存儲過的對象進(jìn)行判斷骑素。這個(gè)以存儲的對象 是根據(jù)俄 model炫乓。issSaved()的返回結(jié)果來判斷 true 標(biāo)識已經(jīng)存儲,false表示尚未存儲献丑。當(dāng)調(diào)用過user末捣。save的方法時(shí)候就表示已經(jīng)存儲過了,第二種就是該框架提供的API進(jìn)行查詢查到的對象创橄。第一種可以可以作如下更改:
user user=new user();user.setAge(20);user.setsex(200);user.save();
這樣就會更新數(shù)據(jù)了箩做,因?yàn)槭窃谥暗奈恢脠?zhí)行了同一段代碼,并且之前已經(jīng)save過了妥畏,表示已經(jīng)存儲過了邦邦。(此處不推薦使用第一種更改數(shù)據(jù)方式)
2 ?推薦的一種更新數(shù)據(jù)方式:
user user=new user();user.setAge(101);user.setsex(120);user.updateAll(“erea=安吁?”,“日本”);
updateall可以指定條件更新erea 數(shù)據(jù) 為日本的 該條數(shù)據(jù)跟新 ?age 和 sex燃辖。是不是很簡單鬼店。當(dāng)然了 條件 也可以多個(gè)用and 連接。
注意:當(dāng)你使用該更新方法建一個(gè)字段設(shè)置為默認(rèn)值得的話 是不可以 用 set方法的黔龟,引文java設(shè)定就是你new 出來一個(gè)數(shù)據(jù)庫表的對象時(shí)候他已經(jīng)初始化設(shè)置為默認(rèn)值了妇智。此時(shí) 該框架 提供了一個(gè)方法 setToDefault();方法氏身,然后傳入相應(yīng)的列名就可以了巍棱。
user user=new user();user.setToDefault("age");user.updateAll();
因?yàn)閡pdateAll方法沒有限定條件,所以默認(rèn)更新所有數(shù)據(jù)蛋欣。
3 刪除數(shù)據(jù)方式兩種拉盾,
第一種 直接根據(jù)之前的以存儲對象 進(jìn)行 delete方法進(jìn)行刪除,這里不多介紹豁状,這里不多介紹捉偏,下面進(jìn)行第二種介紹:
DataSypport。deleteAll(User.class泻红,“age<?”,"19"')夭禽;這段代碼標(biāo)識刪除age小于19的數(shù)據(jù)在user表里面。如何不指定條件則刪除該表所有數(shù)據(jù)谊路。這點(diǎn)和 updataall很相似讹躯。
4 查找數(shù)據(jù):
list<user> ?mlist=DatatSuppory.findall(User.class);
該返回值就是一個(gè) user對象的集合 是不是很簡單。
今天暫時(shí)介紹到這里缠劝,明天詳細(xì)介紹一下查詢功能潮梯,大家都知道查詢是最復(fù)雜的。謝謝大家的支持