LitePal框架是郭神的开源框架,郭神博客
在上一篇中,我们介绍了利用LitePal去修改数据表中的数据,在本篇中,我们来介绍利用LitePal去删除数据表中的数据。
先来瞄一眼删除方法的代码介绍。
看完描述,接下来开搞。
假设我看News表中第1条数据不爽,我想删除它。
现在未删除之前的数据表
上代码
/**
* 删除数据
*/
private void deteleNews() {
DataSupport.delete(News.class, 1);
}
然后我们去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();
deteleNews();
}
完事,来看看效果。
7条数据变6条,说明我们成功了。
这里,我为啥要先演示删除第一条记录呢?因为第一条记录没有与之关联的其他表数据,那你要问了,我擦,那我想要删除了那一列与其他表有关联怎么办?郭神说了,别怕,大胆的删,删完后,与之对应的关联数据也顺带删完了。
先看图
上代码
/**
* 演示:删除News表中的第3条数据,是id=3的哟,别理解错了
*/
private void deteleNews2() {
DataSupport.delete(News.class, 3);
}
然后去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();
// deteleNews();
deteleNews2();
}
完事,让我们来看看是不是如我们上面说的那样,删了某个数据,与这个数据相关联的外键数据也同时被删除了。
好啦,根据id删除数据我们演示完啦。
那么你要问了,修改的时候,我们可以根据id或者条件来修改,那么删除的时候,我们能不能用条件进行删除呢?
答案是妥妥的,郭神把这个也为我们做完了。
先来看方法描述
假设,我们想要删除News表中title值为2的数据。
开搞,来人,上代码
/**
* 根据条件来删除数据
*/
private void deleteAllUseConditions() {
DataSupport.deleteAll(News.class, "title=?", "2");
}
然后去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();
// deteleNews();
// deteleNews2();
deleteAllUseConditions();
}
完事,让我们来看看效果。
title为2的那条数据没了,说明我们操作成功了。
那我们想要删除整张表怎么破?没错,就是你想的那样,只要把条件去了就哦了。我就不演示了,不然表数据还得重建,我只贴代码吧。
/**
* 删除整张News表数据
*/
private void deleteAllUseConditions2() {
DataSupport.deleteAll(News.class);
}
自此,利用LitePal框架进行表的删除操作也总结完了,o(∩_∩)o 哈哈