微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取Android SQL lite中数据库中存在的所有表的名称

我无法找到一种从 android中的数据库获取/转储表名的方法.我知道:查询

SELECT * 
  FROM sqlite_master

上面的语句会生成一个指向所有数据库/视图/表的元数据的游标.但是如何在我的数据库获取我创建的所有表的名称

解决方法

如果要检索数组中的信息(或任何可以遍历字符串的结构),可以创建如下方法

public String[] getdbnames(){
    String[] result;
    try {
        StringBuilder sb = new StringBuilder();
        sb.append("SELECT name FROM sqlite_master "); 
        sb.append("WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%' ");
        sb.append("UNION ALL ");
        sb.append("SELECT name FROM sqlite_temp_master "); 
        sb.append("WHERE type IN ('table','view') ");
        sb.append("ORDER BY 1");

        Cursor c = _db.rawQuery(sb.toString(),null);
        c.movetoFirst();

        result = new String[c.getCount()];
        int i = 0;
        while (c.movetoNext()) {
            result[i]= c.getString(c.getColumnIndex("name"));
            i++;
        }
        c.close();
    }
    catch(sqliteException e){
        Log.e("OOPS",e);
    }
    return result;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐