android.database.sqlite.SQLiteException: unrecognized token: "266_1"
出现上面异常,查看log,发现是sql语句出了问题:
public String getOneFaceFeature(String faceCountId) {
Cursor cursor = db.rawQuery("select id," + FACE_FEATURE + " from " + TAB_FACE_FEATURE +" where " + FACE_COUNT_ID + " = " + faceCountId, null);
异常信息是不能识别信息。发现查询条件是String类型。而在sql语法中字符串是要加单引号‘’的,否则无法识别。当然int类型就不需要了。
修改如下:
Cursor cursor = db.rawQuery("select id," + FACE_FEATURE + " from " + TAB_FACE_FEATURE +" where " + FACE_COUNT_ID + " = '" + faceCountId+"' ", null);
问题解决。
同时要注意,单引号和字符串之间不能有空格,否则不是原来的值,会报android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0异常。见我上篇博客。