在Sugar中执行SQL查询时显示异常

时间:2019-01-14 05:54:29

标签: android sql sugarorm

我正在尝试执行SQL查询Sugar。但是我遇到了异常。 这是我正在执行的查询。

ArrayList<Folder> mFolderList = (ArrayList<Folder>) Folder.findWithQuery(Folder.class, "Select * from Folder where folderPath = " + mFileLists[i].getParent() + " and imagePath = " + mFileLists[i].getAbsolutePath());

此处folderPath的值是设备内部存储器的文件夹路径,例如:/ storage / emulated / 0 / Download

但是我得到了

的例外
W/System.err: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: Select * from Folder where folderPath =/storage/emulated/0/Download and imagePath = /storage/emulated/0/Download/.nomedia

我在此查询中找不到任何错误。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您的图片路径和文件夹路径包含“ /”,而sqlite查询不接受。.

您可以使用DatabaseUtils逃脱此操作...

ArrayList<Folder> mFolderList = (ArrayList<Folder>) Folder.findWithQuery(Folder.class, "Select * from Folder where folderPath = " + DatabaseUtils.sqlEscapeString(mFileLists[i].getParent()) + " and imagePath = " + DatabaseUtils.sqlEscapeString(mFileLists[i].getAbsolutePath()));