这是一个轻量级的数据库框架,使用十分方便。
GitHub地址
使用方式:首先创建一个Assets文件夹,在AS里怎样创建assets?,然后在里面创建litepal.xml,将这些代码拷贝进去:
解释:dbname表示数据库名字,version是数据库版本,list里面放具体的数据表(数据模型),这里要放完整类名。
这里自己创建一个数据模型:
public class News {
private int id;
private String title;
private String content;
private Date publishDate;
private int commentCount;
}
自己的Application类要继承自LitePalApplication,方便框架获取全局上下文。
这样就创建好了数据库。
假设现在要新增Comment表,于是要升级数据库,在litepal里面怎样升级数据库呢?
新增数据表类:
public class Comment {
private int ID;
private String content;
}
litepal.xml里面:
版本号变为2,就完成了。
增删改查操作
存储:
News news = new News("title1", "content1");
news.save();
存一个集合:
DataSupport.saveAll(comments);
修改:
//把title这个字段id为2的标题更改为 今日iPhone6发布
ContentValues values = new ContentValues();
values.put("TiTle", "今日iPhone6发布");
DataSupport.update(News.class, values, 2);
还可以以约束条件进行修改,这个方法 **public static int updateAll(Class> modelClass, ContentValues values, String... conditions) **
例:
//表内标题为 今日iPhone6发布 的标题改为 今日iPhone6 plus发布
ContentValues values = new ContentValues();
values.put("TiTle", "今日iPhone6 plus发布");
DataSupport.updateAll(News.class, values, "title = ?", "今日iPhone6发布");
删除:
DataSupport.delete(News.class, 2);
删除NEws表id为2 的那一行的数据,并且会将以2为外键的数据一并删除。
查询:
News news = DataSupport.find(News.class, 2);//查询id为2的数据
List allNews = DataSupport.findAll(News.class);//查询所有数据
//查询评论数量大于0的数据,并且只要title和content这个两列数据,并且倒序,并且只要前十条数据
List newsList = DataSupport.select("title", "content")
.where("commentcount > ?", "0")
.order("publishdate desc").limit(10).find(News.class);
原生查询:
Cursor cursor = DataSupport.findBySQL("select * from news where commentcount>?", "0");
以上基本就是LitePal的使用方式了,用起来还是非常给力的。