LitePal學(xué)習(xí)(二)——數(shù)據(jù)庫升級(jí)

前言

LitePal學(xué)習(xí)(一)——配置講過了LitePal的基本配置割去,這里講講LitePal的數(shù)據(jù)庫升級(jí)吧花嘶。

講到的知識(shí)點(diǎn)有

  • 在舊版本中如何添加新表
  • 在舊版本的表中如何添加列

下面就來具體講講

一.在舊版本中如何添加新表

我們先回顧下LitePal學(xué)習(xí)(一)——配置的內(nèi)容涨岁,在之前我們已經(jīng)建了一個(gè)Person表餐塘,如果我們現(xiàn)在版本升級(jí)桅锄,需要在新版本中添加另一張表Animal怎么處理呢乐疆,首先列出Animal類的代碼洋只,當(dāng)然還是得繼承我們得數(shù)據(jù)庫data類DataBaseModel辆沦,代碼如下:

package com.android.model;

/**
 * Title:
 * Description:
 * <p>
 * Created by pei
 * Date: 2017/11/27
 */
public class Animal extends DataBaseModel {

    private String name;
    private int weight;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

}

然后在litepal.xml中注冊(cè)數(shù)據(jù)庫表:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <!--數(shù)據(jù)庫文件名-->
    <dbname value="demo" ></dbname>
    <!--數(shù)據(jù)庫版本號(hào)-->
    <version value="2" ></version>
    <!--表名-->
    <list> <mapping class="com.android.model.Person"></mapping>  </list>
    <list> <mapping class="com.android.model.Animal"></mapping>  </list>
</litepal>

之前數(shù)據(jù)庫得版本version為1,這里也要版本號(hào)增1识虚,變?yōu)?

接下來看看MainActivity中得調(diào)用:

   //存儲(chǔ)
                Person person=new Person();
                person.setName("花花");
                person.setSex("女");
                person.setAge(25);
                //儲(chǔ)存狀態(tài)返回的是布爾值
                boolean save=person.save();
                if(save){
                    LogUtil.e(MainActivity.class,"====存儲(chǔ)成功======");
                }else{
                    LogUtil.e(MainActivity.class,"====存儲(chǔ)失敗======");
                }
                //查詢
                List<Person> allPersons = DataSupport.findAll(Person.class);
                for (Person p : allPersons) {
                    LogUtil.e(MainActivity.class, "====person======" + p.toString());
                }

                //存儲(chǔ)
                Animal animal=new Animal();
                animal.setName("小狗");
                animal.setWeight(50);
                animal.save();
                //查詢
                List<Animal> allAnimals = DataSupport.findAll(Animal.class);
                if(CollectionUtil.isEmpty(allAnimals)){
                    LogUtil.e(MainActivity.class, "====empty======");
                }else{
                    for (Animal a : allAnimals) {
                        LogUtil.e(MainActivity.class, "====person======" + a.toString());
                    }
                }

看看打印得結(jié)果吧:


4.png
二.在舊版本得基礎(chǔ)上添加新列

以Animal類為例肢扯,現(xiàn)在需要在表中增加一個(gè)year列,直接在Animal類中添加year屬性担锤,代碼如下:

package com.android.model;

/**
 * Title:
 * Description:
 * <p>
 * Created by pei
 * Date: 2017/11/27
 */
public class Animal extends DataBaseModel {

    private String name;
    private int weight;
    private int year;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }
}

在litepal.xml中修改version版本號(hào)為3蔚晨,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <!--數(shù)據(jù)庫文件名-->
    <dbname value="demo" ></dbname>
    <!--數(shù)據(jù)庫版本號(hào)-->
    <version value="3" ></version>
    <!--表名-->
    <list> <mapping class="com.android.model.Person"></mapping>  </list>
    <list> <mapping class="com.android.model.Animal"></mapping>  </list>
</litepal>

在MainActivity中調(diào)用如下:

                //存儲(chǔ)
                Person person=new Person();
                person.setName("花花");
                person.setSex("女");
                person.setAge(25);
                //儲(chǔ)存狀態(tài)返回的是布爾值
                boolean save=person.save();
                if(save){
                    LogUtil.e(MainActivity.class,"====存儲(chǔ)成功======");
                }else{
                    LogUtil.e(MainActivity.class,"====存儲(chǔ)失敗======");
                }
                //查詢
                List<Person> allPersons = DataSupport.findAll(Person.class);
                for (Person p : allPersons) {
                    LogUtil.e(MainActivity.class, "====person======" + p.toString());
                }

                //存儲(chǔ)
                Animal animal=new Animal();
                animal.setName("小狗");
                animal.setWeight(50);
                animal.save();
                //查詢
                List<Animal> allAnimals = DataSupport.findAll(Animal.class);
                if(CollectionUtil.isEmpty(allAnimals)){
                    LogUtil.e(MainActivity.class, "====empty======");
                }else{
                    for (Animal a : allAnimals) {
                        LogUtil.e(MainActivity.class, "====person======" + a.toString());
                    }
                }

打印結(jié)果:

 E/pei: MainActivity:====存儲(chǔ)成功======
 E/pei: MainActivity:====person======age=25  name=花花  sex=女  
 E/pei: MainActivity:====person======age=25  name=花花  sex=女  
 E/pei: MainActivity:====person======name=小狗  weight=50  year=0   
 E/pei: MainActivity:====person======name=小狗  weight=50  year=5  

ok,今天關(guān)于litePal數(shù)據(jù)庫得升級(jí)就講到這里,謝謝欸肛循。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铭腕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子多糠,更是在濱河造成了極大的恐慌累舷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夹孔,死亡現(xiàn)場(chǎng)離奇詭異被盈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搭伤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門只怎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闷畸,你說我怎么就攤上這事尝盼。” “怎么了佑菩?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盾沫,是天一觀的道長(zhǎng)裁赠。 經(jīng)常有香客問我,道長(zhǎng)赴精,這世上最難降的妖魔是什么佩捞? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蕾哟,結(jié)果婚禮上一忱,老公的妹妹穿的比我還像新娘。我一直安慰自己谭确,他們只是感情好帘营,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逐哈,像睡著了一般芬迄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昂秃,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天禀梳,我揣著相機(jī)與錄音,去河邊找鬼肠骆。 笑死算途,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚀腿。 我是一名探鬼主播嘴瓤,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼唯咬!你這毒婦竟也來了纱注?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤胆胰,失蹤者是張志新(化名)和其女友劉穎狞贱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜀涨,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞎嬉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厚柳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氧枣。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖别垮,靈堂內(nèi)的尸體忽然破棺而出便监,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布烧董,位于F島的核電站毁靶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逊移。R本人自食惡果不足惜预吆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胳泉。 院中可真熱鬧拐叉,春花似錦、人聲如沸扇商。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钳吟。三九已至廷粒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間红且,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工涤姊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暇番,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓思喊,卻偏偏與公主長(zhǎng)得像壁酬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恨课,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 本文參考轉(zhuǎn)發(fā)摘自:【郭霖博客】http://blog.csdn.net/guolin_blog?viewmo...
    _猜火車_閱讀 5,882評(píng)論 0 10
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,130評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)纲辽,斷路器颜武,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 別企圖別人跟你一樣的多愁善感,自作多情拖吼,有時(shí)候你的好心會(huì)被別人誤認(rèn)為是狼心鳞上。有時(shí)候你的好意會(huì)被別人當(dāng)做狗肺。有時(shí)候...
    waterboss閱讀 215評(píng)論 1 1
  • 除了考察求職者的過往職場(chǎng)經(jīng)歷和技術(shù)能否勝任這份工作外吊档,還要考慮他是否適合這個(gè)公司篙议,這個(gè)公司能否達(dá)到他所表現(xiàn)的期望的...
    陳楚煉閱讀 267評(píng)論 0 0