根据输入查找和提取数据库值(Java & SQL 服务器)

Lookup and extract db value based on input (Java & SQL Server)

新 java。
我正在尝试编写一个 class 来输入用户名,运行 查询用户名以查找 ID,然后在 "where clauses" 我所有其他 [=29] 上使用该 ID =]es.

这是我执行的语句(它只会 return 单行的记录集):

String sqlStatement = "SELECT AccountHolderId, Passcode from CIS4720.DBO.AccountHolder " +
"where Username = '" + logonName + "'";  

这是我尝试通过用户名提取 ID...

while (rset.next())
    {
        if(rset.getInt("Username")==logonName){
            int whosOnFirst = rset.getInt("AccountHolderId");
        }

我在论坛上看到另一个回答说你不能将数据库值赋给变量。如果是这样,什么是更好的策略?

(另外,我意识到我没有参数化,但我想在解决该问题之前让它工作。这是为了课程作业,所以我不担心黑客攻击)。

P. S. 谢谢,我修复了上面代码中的双等号(和额外的括号)。

以下是关于代码的一些评论:

  • rset.getInt("Username") 将从结果中获取用户名列,但由于 getInt,它还会查找整数列。您没有在 sql 语句中 selecting 该列,因此会出错。
  • 如果你 select 它并得到一个字符串,使用 .equals() 而不是 == 来比较字符串。另外,一个=是赋值,==是比较。
  • 您可以使用 getString 从结果集中读取字符串。
  • 您不需要检查用户名并匹配它,因为您的查询应该 return 正是该用户的数据,所以我将完全删除 if 条件,只在其中添加 getInt 行。