簡介
LitePal是一款開源的Android數(shù)據(jù)庫開發(fā)框架,采用了對象關(guān)系映射(ORM)的模式(即將面向?qū)ο蟮恼Z言和面向關(guān)系的數(shù)據(jù)庫之間建立一種映射關(guān)系)匪蟀,對數(shù)據(jù)庫的常用功能進行了封裝,實現(xiàn)建表和增刪改查的功能拿撩。
配置LitePal
1. 添加依賴項
compile 'org.litepal.android:core:1.3.2'
2. 配置litepal.xml文件
<litepal>
<!--dbname 為數(shù)據(jù)庫的名字-->
<dbname value="cool_weather"/>
<!--數(shù)據(jù)庫版本指定為1-->
<version value="1"/>
<!--將實體類添加到映射列表中-->
<list>
<mapping class="com.example.stardream.coolweather.db.Province"/>
<mapping class="com.example.stardream.coolweather.db.City"/>
<mapping class="com.example.stardream.coolweather.db.County"/>
</list>
</litepal>
3. 修改AndroidManifest.xml文件
將項目的application配置為org.litepal.LitePalApplication
android:name="org.litepal.LitePalApplication"
創(chuàng)建和升級數(shù)據(jù)庫
1.創(chuàng)建實體類
package com.example.stardream.coolweather.db;
import org.litepal.crud.DataSupport;
/**
* Created by StarDream on 2018/8/22.
*/
//LitePal中的每一個實體類都應(yīng)該繼承DataSupport
public class Province extends DataSupport {
private int id; //實體類具有的id
private String provinceName; //省份的名字
private int provinceCode; //省的代號
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public int getProvinceCode() {
return provinceCode;
}
public void setProvinceCode(int provinceCode) {
this.provinceCode = provinceCode;
}
}
City實體類和County實體類同理新思。每個實體類代表一張表,實體類中的屬性代表表中的每一列瞪慧。
2.創(chuàng)建數(shù)據(jù)庫
Connector.getDatabase();
基本操作
1.添加數(shù)據(jù)
Province province = new Province();
//解析出省份的id并將其賦值給province對象
province.setProvinceCode(provinceObject.getInt("id"));
//解析出省份的name并將其賦值給province對象
province.setProvinceName(provinceObject.getString("name"));
//將這一個省份保存到表中
province.save();
2.更新數(shù)據(jù)
province.setProvinceName("北京");
province.save();
//或者還有一種簡介更新方式
province.updateAll("provinceName=?","北京");
3.刪除數(shù)據(jù)
DataSupport.deleteAll(Province.class,"name = ?","北京");
4.查詢數(shù)據(jù)
List<Province> provinces = DataSupport.findAll(Province.class);
for(Province province :provinces){
Log.d("Activity","Province name is"+province.getProvinceName());
}
//另外還可以這樣查詢
cityList = DataSupport.where("provinceId = ?",String.valueOf(selectedProvince.getId())).find(City.class);
for(City city : cityList){
if(city.getProvinceId() == selectedProvince.getId()){
cityListNum++;
}
}
以上就是LitePal的基本操作。