列出ormlite db android的所有表

时间:2015-08-05 11:56:02

标签: android ormlite

我想在android

中列出ormlite数据库的所有表名

创建表的代码:

this.bmp = MyClass.decodeFile(this.imageFileUri.getPath());

2 个答案:

答案 0 :(得分:2)

如果我理解你想要列出数据库中的表格吧? 根据我的理解,如果我错了,请原谅我 这是一个例子。

public List<String> getTablesOnDataBase(SQLiteDatabase db){
        Cursor c = null; 
        List<String> tables = new ArrayList<String>();
        try{
            c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
            if (c.moveToFirst()) {
                while ( !c.isAfterLast() ) {
                    tables.add(c.getString(0));
                    c.moveToNext();
                }
            }
        }
        catch(Throwable throwable){
            //Issue reading the SQLite Master table
        }
        finally{
            if(c!=null)
              c.close();
        }
        return tables;
    }

答案 1 :(得分:1)

  

列出ormlite db android

的所有表

ORMLite中没有列出现有表的方法,但您当然可以使用dao.queryRaw(...)方法来执行此操作。以下是docs on raw-queries

以下内容应该有效:

GenericRawResults<String[]> results =
    dao.queryRaw("SELECT name FROM sqlite_master WHERE type = 'table'");
for (String[] result : results) {
    System.out.println("One table is: " + result[0]);
}

这将适用于任何DAO对象,因为它们应该连接到同一个数据库。