您的位置:首页 > 移动开发 > Android开发

Android数据库-greenDao3.2.2初体验(下)-简单的查询和删除操作

2018-01-31 17:51 369 查看
上一篇讲到了greenDao3.2.2的集成与最基本的增查改删(CRUD)操作,接下来讲一讲更细致的一些简单且常用的查找、删除操作

查找(Read)操作

我们可以根据非主键来进行查找,具体方法是通过,greenDao对应的Properties来获取到你的键名称,从而根据对应的字段进行查找,具体实现如下:

/**
* 按照指定字段进行查询,查询结果是一个数据集
* @param conditions
* @return
*/
public static List<TestDb> searchByCondition(String conditions){
try {
return DataBaseUtils.getDaoSession().getTestDbDao().queryBuilder().where(TestDbDao.Properties.Uiname.eq(conditions)).list();
}catch (Exception e){
e.printStackTrace();
}
return null;
}
//下面还提供了查询单条数据的方法,如果需要可以自己封装
//TestDb testDb =  DataBaseUtils.getDaoSession().getTestDbDao().queryBuilder().where(TestDbDao.Properties.Uiname.eq(conditions)).unique();


删除(Delete)操作

上一篇讲到的删除操作也只是根据主键进行删除,但是根据其他条件进行删除的话,貌似greenDao没有提供相应的方法,我看了一下源码,即便是删除对象的方法,其根本也是根据主键来删除的。所以这时只能让人想到曲线救国的路线了,那就是根据上面查找单条数据的方法,和删除操作结合起来使用,也就是说对单条数据查询获取到对应主键,然后根据主键进行删除。

具体做法如下:

/**
* 通过其他字段去删除
* 思路是先查询到对应的数据,然后获取该条数据对应的主键,用对应主键进行删除
* @param otherKey
* @return
*/
public static boolean deleteByOtherKey(String otherKey){
TestDb testDb =  DataBaseUtils.getDaoSession().getTestDbDao().queryBuilder().where(TestDbDao.Properties.Uiname.eq(otherKey)).unique();
if (testDb != null){
try {
DataBaseUtils.getDaoSession().getTestDbDao().deleteByKey(testDb.getPrimid());
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}


以上就是greenDao的简单的查询和删除操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐