R00*_*00t 0 sqlite select android cursor
我想知道这种方法是否正确验证_username的值是否已存在于"username"列中
public boolean verification(String _username) throws SQLException{
Cursor c = dataBase.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE "+KEY_USERNAME+"="+_username, null);
if (c!=null)
return true; // return true if the value of _username already exists
return false; // Return false if _username doesn't match with any value of the columns "Username"
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做同样的事情,我真的不确定这一点,它似乎对我来说.谢谢.
Cursor c = dataBase.rawQuery("SELECT 1 FROM "+TABLE_NAME+" WHERE "+KEY_USERNAME+"=?", new String[] {_username});
Run Code Online (Sandbox Code Playgroud)
(老实说,我不确定你的第一个查询是如何抛出异常的,因为你忘了将字符串包装在引号中......)
也rawQuery()将始终返回Cursor,您必须检查Cursor是否为空,而不是null.
至于"最好"的方法,这很好,但我建议关闭光标以释放资源.全部一起:
public boolean verification(String _username) {
Cursor c = dataBase.rawQuery("SELECT 1 FROM "+TABLE_NAME+" WHERE "+KEY_USERNAME+"=?", new String[] {_username});
boolean exists = c.moveToFirst();
c.close();
return exists;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10878 次 |
| 最近记录: |