问题是:在Android中实现系统自带数据库文件的多表联合查询,目前只知道使用Cursor进行简单的系统数据库文件操作,虽然可以使用SQLiteDatabase对象对自己的应用中的数据库文件进行较为复杂的数据操作,像多表联合查询之类的。现在的问题是怎样得到系统自带数据库文件的SQLiteDatabase的引用对象。2012-03-02

现发现有一个方法可以基本实现Android表中的基于SQL语言多表查询效果,使用SQLiteDatabase.rawQuery:

        sqLiteDatabase = mdb.dbHelper.getReadableDatabase();        Cursor listCursor = sqLiteDatabase.rawQuery("SELECT _id,address,body,type,date,ac from MySms a , (SELECT max(date) maxd,count(address) ac from MySms Group By address) b where a.date = b.maxd order by date desc",null);        startManagingCursor(listCursor);

这是对系统短信数据库sms的查询,其中返回了短信ID,号码,短信内容,短信类型,时间及该号码中包含的短信数目。注意,这里能者样查询是因为我把系统的数据库在我的程序中备份了一份(就是语句中的MySms),所以可以使用SQLiteDatabase对象来使用SQL语言的查询。还有就是rawQuery()方法中的ORDER BY 参数是要设置为 null 的。2012-03-04

更多相关文章

  1. 解Android系统的进程间通信原理(二)----RPC机制
  2. Android系统设计中存在设计模式分析
  3. android图形系统详解二:Drawables
  4. 基于Android(安卓)5.1系统的nfc读卡驱动和上层的调试记录,nfc移植
  5. Android(安卓)View视图系统分析和Scroller和OverScroller分析
  6. Android系统布局——android.R.layout详解
  7. windows系统上安装与使用Android(安卓)NDK r5
  8. Android(安卓)Display 系统分析
  9. Android系统架构基本模式解析

随机推荐

  1. Android三级目录、ListView单选/GridView
  2. EditView某些属性说明
  3. Android 5.0 Telephony关键类初始化和相
  4. Android原生(Native)C开发之九:OpenGL ES
  5. Android onActivityResult()不执行的几个
  6. Android的视频播放之VideoView与SurfaceV
  7. Android入门之helloworld
  8. Android Zygote
  9. android framework 图解分享
  10. Android 布局 & 一些控件