使用LitePal后呢,我们就不用"create table province (" + "id integer primary key autoincrement, " + "province_name varchar, " + "province_code varchar " )";这样的建表语句了,一切变得很简单。根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),也就是说,如果我们需要先建一张Provinces表,就应该有一个对应的Province模型类。需要什么表建立一个相应的类,里头有什么列就在模型类里对应怎样的字段,让我们看一下!
然后,表中的每一列其实就是对应了模型类中的一个字段,比如news表中有id、title、content、publishdate、commentcount这几个列,那么在News类中就也应该有这几个字段,代码如下所示:
- public class News {
- private int id;
- private String title;
- private String content;
- private Date publishDate;
- private int commentCount;
- // 自动生成get、set方法
- ...
- }
public class Province extends DataSupport{
private int id;
private String province_name;
private String province_code;
private List<City> cities = new ArrayList<City>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProvince_name() {
return province_name;
}
public void setProvince_name(String province_name) {
this.province_name = province_name;
}
public String getProvince_code() {
return province_code;
}
public void setProvince_code(String province_code) {
this.province_code = province_code;
}
public List<City> getCities() {
return cities;
}
public void setCities(List<City> cities) {
this.cities = cities;
}
}
通过以上操作我们就完成了三张表的建立,别忘了一件事在assets文件的litepal.xml文件修改
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!-- 数据库名字 -->
<dbname value="weather"></dbname>
<!-- 数据库版本 -->
<version value="1"></version>
<!-- 设定所以的映射模型 -->
<list>
<mapping class="com.example.litepaltest.Province"></mapping>
<mapping class="com.example.litepaltest.City"></mapping>
<mapping class="com.example.litepaltest.County"></mapping>
</list>
</litepal>