我无法使用SQLiteAssetHelper查询预先创建的数据库

时间:2017-12-19 07:31:51

标签: android android-sqlite

我无法查询预先创建的数据库。我使用SQLiteDatabaseBrowser创建了一个SQLite数据库,并填充了它。以下查询适用于SQLiteDatabaseBrowser:

SELECT png FROM flags64 WHERE iso3='jpn' LIMIT 1

我将android项目中“../assets/databases”文件夹中的文件移动到Android Studio中。这是用于从我的Android应用程序查询数据库的代码:

public class myStickerDatabase extends SQLiteAssetHelper {
    private static final String DATABASE_NAME = "mysticker.db";
    private static final int DATABASE_VERSION = 1;

    public myStickerDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public Bitmap getFlag(String iso3) {
        SQLiteDatabase db = getReadableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

        Cursor c = db.rawQuery(String.format("SELECT png FROM flags64 WHERE iso3 = '%s' LIMIT 1", iso3), null);

        c.moveToFirst();

        byte[] png = c.getBlob(c.getColumnIndex("png"));

        ByteArrayInputStream inputStream = new ByteArrayInputStream(png);
        return BitmapFactory.decodeStream(inputStream);
    }
}

调试代码查询不会返回任何记录。

更新 似乎数据库未复制到设备。 数据库大小约为250kb,但设备中的副本大约为24kb。为什么呢?

Android Studio

0 个答案:

没有答案