Android中系统自带数据库文件中的…

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

 

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

Java代码 复制代码  收藏代码Android中系统自带数据库文件中的多表联合查询疑问
  1. sqLiteDatabase mdb.dbHelper.getReadableDatabase();   
  2. Cursor listCursor sqLiteDatabase.rawQuery("SELECT _id,address,body,type,date,ac from MySms (SELECT max(date) maxd,count(address) ac from MySms Group By address) where a.date b.maxd order by date desc",null);   
  3. startManagingCursor(listCursor);  
        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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值