是否有一种直接的方法来查询SQLiteDatabase
非String
类型的选择参数?
特别是:如果arg是一个byte[]
类型?
我能找到的最接近的东西是SQLiteDatabase.compileStatement()
,SQLiteStatement
你可以打电话bindBlob
等等.不幸的SQLiteStatement
是,查询并不好,因为它不会返回游标.
SQLiteCursor
看起来很有希望,但我无法弄清楚如何使用它.
这是Android数据库API中的设计错误.
query
并且rawQuery
只接受字符串参数.
execSQL
接受任何Object
参数,但不返回结果.
SQLiteStatement
接受任何类型的参数,但仅允许返回单个值的查询.
你可以做的是忽略参数,并手动将blob格式化为blob文字:
cursor = db.rawQuery("SELECT a FROM b WHERE c = x'112233'", null);