相关疑难解决方法(0)

IN子句和占位符

我正在尝试在Android中执行以下SQL查询:

    String names = "'name1', 'name2";   // in the code this is dynamically generated

    String query = "SELECT * FROM table WHERE name IN (?)";
    Cursor cursor = mDb.rawQuery(query, new String[]{names});
Run Code Online (Sandbox Code Playgroud)

但是,Android不会使用正确的值替换问号.我可以执行以下操作,但是,这不能防止SQL注入:

    String query = "SELECT * FROM table WHERE name IN (" + names + ")";
    Cursor cursor = mDb.rawQuery(query, null);
Run Code Online (Sandbox Code Playgroud)

如何解决此问题并能够使用IN子句?

sqlite android

99
推荐指数
4
解决办法
5万
查看次数

MediaStore - Uri查询所有类型的文件(媒体和非媒体)

在类MediaStore.Files类中,它提到了,

媒体提供程序表,包含媒体存储中所有文件的索引,包括非媒体文件.

我有兴趣查询像PDF这样的非媒体文件.

我正在使用CursorLoader来查询数据库.对于构造函数的第二个参数需要一个开放的参数,它是容易得到媒体类型的音频,图像和视频为他们每个人都有一个EXTERNAL_CONTENT_URI,并INTERNAL_CONTENT_URI为它们定义的常量.

对于MediaStore.Files,没有这样定义的常量.我尝试使用该getContentUri()方法但无法找出参数值volumeName.我尝试给出"/ mnt/sdcard"以及将设备连接到我的系统时出现的卷名但是徒劳无功.

我在Google网上论坛上看到了类似的问题但尚未解决.

编辑:我也尝试使用Uri.fromFile(新文件("/ mnt/sdcard /"))和Uri.parse(新文件("/ mnt/sdcard").toString()),但这也没有用.

android mediastore

21
推荐指数
1
解决办法
5万
查看次数

标签 统计

android ×2

mediastore ×1

sqlite ×1