前言
在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í)就講到這里,謝謝欸肛循。