java新手 我正在尝试编写一个将输入用户名的类,在用户名上运行查询以查找ID,然后在我所有其他类的“where子句”中使用该ID。
这是我执行的语句(它只会返回单行的记录集):
String sqlStatement = "SELECT AccountHolderId, Passcode from CIS4720.DBO.AccountHolder " +
"where Username = '" + logonName + "'";
以下是我尝试通过用户名...
提取IDwhile (rset.next())
{
if(rset.getInt("Username")==logonName){
int whosOnFirst = rset.getInt("AccountHolderId");
}
我在论坛上看到另一个答案,说你无法将数据库值分配给变量。如果是这样的话,什么是更好的策略?
(另外,我意识到我没有参数化,但是我想在解决这个问题之前让它工作。这是一个课程作业,所以我不担心黑客攻击)。
P上。谢谢我修复了上面代码中的双等号(以及额外的括号)。
答案 0 :(得分:1)
以下是有关代码的一些评论:
rset.getInt("Username")
将从结果中获取用户名列,但由于getInt,它还会查找Integer列。您没有在sql语句中选择该列,因此会出错。 .equals()
代替==
来比较字符串。此外,一个=
是分配,==
是比较。 getString
从结果集中读取字符串。