Java 如何检查sqlite表中是否有满足某些条件的记录
我有以下代码Java 如何检查sqlite表中是否有满足某些条件的记录,java,android,sqlite,Java,Android,Sqlite,我有以下代码 public int getIngCount(String id,String ingrediant) { String countQuery = "SELECT * FROM " + TABLE_CONTACTS2 + " WHERE id = "+id+ " AND ingrediant = "+ingrediant; SQLiteDatabase db = this.getReadableDatabase(); Cursor
public int getIngCount(String id,String ingrediant) {
String countQuery = "SELECT * FROM " + TABLE_CONTACTS2 + " WHERE id = "+id+ " AND ingrediant = "+ingrediant;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
// return count
return cursor.getCount();
}
但是当没有满足条件的记录时,它会导致异常(没有这样的列),而不是返回0
请帮我找到解决办法。提前感谢。应将InCredit视为字符串文字,而不是列名等标识符。在SQL中,字符串文字使用单引号。最好使用
?
占位符来绑定文字值,不过:
String countQuery = "SELECT * FROM " + TABLE_CONTACTS2 + " WHERE id = "+id+ " AND ingrediant = ?";
Cursor cursor = db.rawQuery(countQuery, new String[] { ingrediant });
另外,关闭游标方法后不要调用任何游标方法。请添加stacktrace。异常是什么?显示sqlite异常:没有这样的列@FildorIts会在关闭游标方法后调用导致异常。但是,是的,永远不要对参数使用连接,始终使用绑定变量,否则会有SQL注入安全漏洞。