简介
LitePal是一款开源的Android数据库开发框架,采用了对象关系映射(ORM)的模式(即将面向对象的语言和面向关系的数据库之间建立一种映射关系),对数据库的常用功能进行了封装,实现建表和增删改查的功能。
配置LitePal
1. 添加依赖项
compile 'org.litepal.android:core:1.3.2'
2. 配置litepal.xml文件
<litepal>
<!--dbname 为数据库的名字-->
<dbname value="cool_weather"/>
<!--数据库版本指定为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"
创建和升级数据库
1.创建实体类
package com.example.stardream.coolweather.db;
import org.litepal.crud.DataSupport;
/**
* Created by StarDream on 2018/8/22.
*/
//LitePal中的每一个实体类都应该继承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.创建数据库
Connector.getDatabase();
基本操作
1.添加数据
Province province = new Province();
//解析出省份的id并将其赋值给province对象
province.setProvinceCode(provinceObject.getInt("id"));
//解析出省份的name并将其赋值给province对象
province.setProvinceName(provinceObject.getString("name"));
//将这一个省份保存到表中
province.save();
2.更新数据
province.setProvinceName("北京");
province.save();
//或者还有一种简介更新方式
province.updateAll("provinceName=?","北京");
3.删除数据
DataSupport.deleteAll(Province.class,"name = ?","北京");
4.查询数据
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的基本操作。