LitePal框架是郭神的开源框架,郭神博客
在上一篇中,我们描述了利用LitePal框架对数据表进行插入数据操作,而在本篇,我们继续开播LitePal框架对数据表内数据的修改操作。
先来瞄一眼update的方法描述。
看完方法介绍,接下来我们来实践一下。
我们假设要修改News表里的第4条数据,没修改前,数据表如图,借用一下上一篇的图。
接下来,我来写代码
/**
* 演示利用LitePal框架进行数据表数据的修改
*/
private void updateNewsInfo() {
ContentValues values=new ContentValues();
values.put("content", "我是修改后的content");
values.put("title", "我是修改后的title");
//我们修改id=4的数据,即第4条数据
DataSupport.update(News.class, values, 4);
}
然后去onCreate()方法里去调用。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = Connector.getDatabase();
// addMyFirstNews();
// addNewsAndIntroduce();
// addNewsAndComments();
// addNewsAndCategories();
updateNewsInfo();
}
搞定,完事,so easy。
来看效果图
是不是觉得碉堡。只要知道要操作的数据的id,然后把要修改的值放入ContentValues对象里,然后执行一下update方法就好了。
你要说了,那我要根据条件修改,而不是根据每个id进行操作呢?郭神也为我们封装好啦,来看方法注释。
看完方法介绍,接下来我们来实践一下。
比如说我现在要修改News表中所有评论数=0的数据,把表中的发布时间字段(PubDate)修改成当前时间。
先上没修改的时候的图。
接下来,我们来写代码。
/**
* 利用条件来查询所有相关数据
*/
private void updateAllUseConditions() {
ContentValues values = new ContentValues();
values.put("publishdate", "201501071418");
DataSupport.updateAll(News.class, values, "commentcount=?", "0");
}
然后在onCreate()方法里调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = Connector.getDatabase();
// addMyFirstNews();
// addNewsAndIntroduce();
// addNewsAndComments();
// addNewsAndCategories();
// updateNewsInfo();
updateAllUseConditions();
}
好啦,让我们来看看效果图。
好啦,这样,根据条件修改我们也完成啦。
要是你还想说,我想把所有的评论数全部修成成10怎么破?
更简单,直接上代码。
/**
* 把评论数全部修改成10
*/
private void updateAllUseConditions2() {
ContentValues values = new ContentValues();
values.put("commentcount", "10");
DataSupport.updateAll(News.class, values);
}
简单不,就是把条件给去了,意思就是给所有的都修改。
然后去onCreate()方法里去调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = Connector.getDatabase();
// addMyFirstNews();
// addNewsAndIntroduce();
// addNewsAndComments();
// addNewsAndCategories();
// updateNewsInfo();
//updateAllUseConditions();
updateAllUseConditions2();
}
最后,我们来看看修改后的结果。
自此,关于利用LitePal来进行数据表数据的修改我们也总结完了。
结尾顺便膜拜一下郭神。