Java 如何基于其他列值(SQLiteOpenHelper)检索id值?
我想通过验证用户名和密码是否包含相同的id来设置登录选项。问题是我不知道如何根据它们的列值获取id值,例如-player或1234。我想得到的结果是比较它们的id值,这样我就可以知道用户名和密码是否正确。您可以使用如下查询:Java 如何基于其他列值(SQLiteOpenHelper)检索id值?,java,android,database,sqlite,android-sqlite,Java,Android,Database,Sqlite,Android Sqlite,我想通过验证用户名和密码是否包含相同的id来设置登录选项。问题是我不知道如何根据它们的列值获取id值,例如-player或1234。我想得到的结果是比较它们的id值,这样我就可以知道用户名和密码是否正确。您可以使用如下查询: "SELECT * FROM " + TABLE_EMP + " WHERE " + KEY_USERNAME + " = '" + userName + "'" 假设您的用户名必须是唯一的才能获得唯一的记录。如果您想要更具体的信息,那么
"SELECT * FROM " + TABLE_EMP
+ " WHERE " + KEY_USERNAME + " = '" + userName + "'"
假设您的用户名必须是唯一的才能获得唯一的记录。如果您想要更具体的信息,那么您也可以为密码添加一个条件。为什么不简单地检查您的密码是否与您的用户名匹配并忘记id?如果用户名和密码匹配
public boolean ifValidUserLogin(String username, String password) {
SQLitedarabase db = this.getWriteableDatabase();
Cursor csr = db.query(YOUR_TABLE_NAME,
null, // null equates to all columns
"username" + "=? AND " +
"password" + "=?", // the WHERE clause less WHERE
new String[]{username,password}, // the arguments that replace ?'s
null,null,null
};
boolean rv = (csr.getCount > 0);
csr.close();
return rv;
}
然后,您可能会在活动中调用此函数,其内容如下:-
MySQLiteOpenHelper myhlpr = new MySQLiteOpenhelper(this); // parms might be different
if (myhlpr.ifValidUserLogin(username_from_ui,password_from_ui)) {
// username and password match so do what you need to do here!
} else {
// mismatch so do what you need to do here!.
}
笔记
对SQLiteDatabase查询方法的调用等同于使用SQL SELECT*FROM表,其中username=??????密码=???表示用户输入值
_TABLE_名称应替换为字符串形式的表名。
你可能想看看
如果您想要id,则可以使用:-
public long getValidUserId(String username, String password) {
long rv = -1; // default to mismatch and thus no id (could use 0)
SQLitedarabase db = this.getWriteableDatabase();
Cursor csr = db.query(YOUR_TABLE_NAME,
null, // null equates to all columns
"username" + "=? AND " +
"password" + "=?", // the WHERE clause less WHERE
new String[]{username,password}, // the arguments that replace ?'s
null,null,null
};
if (csr.moveToFirst) {
rv = csr.getLong(csr.getColumnIndex("YOUR_ID_COLUMNNAME"));
}
csr.close();
return rv;
}
显然,您需要调用getValidUserId并检查值>-1是否匹配。
你用的是什么数据库@MaayankaidarSqliteOpenHelper您应该学习SQL基础知识:选择用户名='player'和密码='1234'的ID我不是用SQL编程,而是用SQLite,我认为它有点混合了java,所以我不能只键入您所说的,如果我错了,请纠正我。MaayanKaidar SQLite使用SQL作为其quey语言。这就是SQL在SQLite名称中的含义。您可以看看这个来学习sqllite