Java 插入前如何检查行是否存在?
我想将记录插入sqllite数据库,但在插入之前,我必须检查记录是否存在Java 插入前如何检查行是否存在?,java,android,database,sqlite,Java,Android,Database,Sqlite,我想将记录插入sqllite数据库,但在插入之前,我必须检查记录是否存在 SQLiteDatabase db = this.getReadableDatabase(); String selectQuery = "SELECT * FROM " + TABLE_TEAM + " WHERE " + TEAM_TABLE_NAME + " = " + name+";"; Log.e(LOG, selectQuery); Cursor c =
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_TEAM + " WHERE "
+ TEAM_TABLE_NAME + " = " + name+";";
Log.e(LOG, selectQuery);
Cursor c = db.rawQuery(selectQuery, null);
if (c != null) {
return true;
}
return false;
我使用了这段代码,但仍然说没有这样的列,并停止了工作,尽管记录存在
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_TEAM + " WHERE "
+ TEAM_TABLE_NAME + " = " + name+";";
Log.e(LOG, selectQuery);
Cursor c = db.rawQuery(selectQuery, null);
if (c != null) {
return true;
}
return false;
这是使用
rawQuery()
的推荐方法:
因此,您可以将name
作为参数传递给查询,从而避免了。在代码中,您只检查
光标
对象是否为null
,而不检查它是否包含正确操作的行。因此,返回
getCount()>0
的结果,如下所示:
return c.getCount() > 0;
如果表中已存在名称,则返回true
至于没有这样的列
错误,这是不同的首先确保
TEAM\u TABLE\u NAME
是正确的列名称,如果是,则可能对未反映到数据库中的列名称进行了更改因此,请从设备上卸载应用程序,以便删除数据库,然后重新运行以使用列的新名称重新创建数据库。如果列
TEAM\u TABLE\u NAME
是唯一的或主键,只需使用插入或忽略?