LitePal框架是郭神的开源框架,郭神博客
学习总结的第一篇总结了如何配置LitePal,第二篇总结了如何利用LitePal创建数据库及数据表。而本篇则是总结了如何利用LitePal更新数据表。
在上一篇中,我们在demo数据库中创建了News数据表,但是现在需求有变,每一篇新闻对应的评论,则我们还需要一个Comment表。那该如何利用LitePal去更新数据库呢?
根据创建News表的经验,我们要想创建Comment表,首先要有一个Comment表对应的Model,也就是说,我们要去创建一个实体类(Comment类)。
package org.guya.litepaltest.model;
public class Comment {
private int id;
private String content;
...
set、get方法
}
然后去litepal.xml文件中去注册。
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" >
</dbname>
<version value="2" >
</version>
<list>
<mapping class="org.guya.litepaltest.model.News" >
</mapping>
<mapping class="org.guya.litepaltest.model.Comment" >
</mapping>
</list>
</litepal>
注册的同时,不要忘了把数据库的版本号对应的值(Value)加上1,不然进入程序会直接崩了。
然后我们去执行
SQLiteDatabase db = Connector.getDatabase();
这样,我们就完成了数据库的表的更新,自此,我们的demo数据库就多了一个Comment表。
如果想要更新现有表的结构,那么我们该怎么破呢?没错,就是你想的那样(郭神,请允许我装B一下,o(∩_∩)o 哈哈)。假设我们想在Comment数据表里添加一个字段发布时间(pubDate),那么只需要在实体Comment里添加一个对应的字段即可。
package org.guya.litepaltest.model;
import java.util.Date;
public class Comment {
private int id;
private String content;
private Date pubDate;
set、get方法
}
自此,我们又利用LitePal完成了更新已有表的情况。
那么,你又想,既然我能够利用LitePal完成已有表的字段的增加,那么,我想删除一个字段怎么破,比如我想删除content字段。
郭神也为我们做好了准备,啊,郭神威武。
那么怎么做呢,对,就是你想的那样,ORM模式,我们只需要删除实体Comment中的content字段,然后去修改一下litepal.xml里的value值即可,千万别因为太简单而激动的把修改版本号给忘了。
以此类推,我想删除一个表,比如Comment表我不想要了,那么怎么破?
没错,就是你想的,我们只需要在litepal.xml把注册的类删掉就可以了,至于实体类删不删随便你,不过修改完后别忘了使版本号(value)的值加1哟。