每次启动后清除 Sugar 数据库 table 列记录
Clear Sugar database table column records after every start
我有一个带有一些名称和 url 的列表视图。在我的应用程序启动后,我检查我的本地数据库中是否有任何记录首先清除我的旧记录,然后用列表视图填充 table 列数据,如果不只是插入数据...我就是这样做的:
List<LocalProduct> allAuthors = LocalProduct.listAll(LocalProduct.class);
if (allAuthors == null) {
for (int allList=0;allList<adapter.getCount();allList++){
Product my = adapter.getItem(allList);
String offline_name = my.name.toString().trim();
String offline_url = my.image_url.toString().trim();
LocalProduct book = new LocalProduct(offline_name, offline_url);
book.save();
}
}else {
allAuthors.clear(); //I tried this
allAuthors.removeAll(allAuthors); //And this
for (int allList=0;allList<adapter.getCount();allList++){
Product my = adapter.getItem(allList);
String offline_name = my.name.toString().trim();
String offline_url = my.image_url.toString().trim();
LocalProduct book = new LocalProduct(offline_name, offline_url);
book.save();
}
}
但是我的 table 记录在每次启动后仍然存储相同的记录..
正确的方法是什么!?
clear()
和 removeAll()
只从 List
中删除项目(加载时在内存中)不删除数据库中的记录。
如果你想清除数据库中的记录,你需要使用:
db.delete(TABLE_NAME, null, null);
在初始化本地产品之前插入此行 class 列表:
SugarRecord.deleteAll(LocalProduct.class);
示例:
SugarRecord.deleteAll(LocalProduct.class);
List<LocalProduct> allAuthors = LocalProduct.listAll(LocalProduct.class);
我有一个带有一些名称和 url 的列表视图。在我的应用程序启动后,我检查我的本地数据库中是否有任何记录首先清除我的旧记录,然后用列表视图填充 table 列数据,如果不只是插入数据...我就是这样做的:
List<LocalProduct> allAuthors = LocalProduct.listAll(LocalProduct.class);
if (allAuthors == null) {
for (int allList=0;allList<adapter.getCount();allList++){
Product my = adapter.getItem(allList);
String offline_name = my.name.toString().trim();
String offline_url = my.image_url.toString().trim();
LocalProduct book = new LocalProduct(offline_name, offline_url);
book.save();
}
}else {
allAuthors.clear(); //I tried this
allAuthors.removeAll(allAuthors); //And this
for (int allList=0;allList<adapter.getCount();allList++){
Product my = adapter.getItem(allList);
String offline_name = my.name.toString().trim();
String offline_url = my.image_url.toString().trim();
LocalProduct book = new LocalProduct(offline_name, offline_url);
book.save();
}
}
但是我的 table 记录在每次启动后仍然存储相同的记录.. 正确的方法是什么!?
clear()
和 removeAll()
只从 List
中删除项目(加载时在内存中)不删除数据库中的记录。
如果你想清除数据库中的记录,你需要使用:
db.delete(TABLE_NAME, null, null);
在初始化本地产品之前插入此行 class 列表:
SugarRecord.deleteAll(LocalProduct.class);
示例:
SugarRecord.deleteAll(LocalProduct.class);
List<LocalProduct> allAuthors = LocalProduct.listAll(LocalProduct.class);