根据输入查找和提取数据库值(Java和SQL Server)

根据输入查找和提取数据库值(Java和SQL Server),java,sql,sql-server,variables,recordset,Java,Sql,Sql Server,Variables,Recordset,java新手。 我正在尝试编写一个类,该类将输入用户名,对用户名运行查询以查找ID,然后在所有其他类的“where子句”中使用该ID 这是我执行的语句(它将只返回一行的记录集): 下面是我通过用户名提取ID的尝试 while (rset.next()) { if(rset.getInt("Username")==logonName){ int whosOnFirst = rset.getInt("AccountHolderId");

java新手。
我正在尝试编写一个类,该类将输入用户名,对用户名运行查询以查找ID,然后在所有其他类的“where子句”中使用该ID

这是我执行的语句(它将只返回一行的记录集):

下面是我通过用户名提取ID的尝试

while (rset.next())
    {
        if(rset.getInt("Username")==logonName){
            int whosOnFirst = rset.getInt("AccountHolderId");
        }
我在论坛上看到了另一个答案,它说不能将数据库值分配给变量。如果是这样,什么是更好的策略

(此外,我意识到我没有参数化,但我希望在解决该问题之前能使其正常工作。这是一个课程作业,所以我不担心黑客攻击)


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

以下是关于代码的一些注释:

  • rset.getInt(“Username”)
    将从结果中获取列Username,但由于getInt,它也会查找整数列。您没有在sql语句中选择该列,因此将出错
  • 如果选择它并获取字符串,请使用
    .equals()
    而不是
    =
    来比较字符串。另外,一个
    =
    是赋值,
    =
    是比较
  • 您可以使用
    getString
    从结果集中读取字符串
  • 您不需要检查用户名并进行匹配,因为您的查询应该准确地返回该用户的数据,所以我将完全删除if条件,只在那里保留getInt行

rset.getInt(“用户名”)
将从结果中获取列用户名,但由于
getInt
,它也会查找整数列。您没有在sql语句中选择该列,因此将出错。另外,如果您选择它并获得一个字符串,请使用
.equals()
而不是
=
来比较字符串。另外,一个
=
是赋值,
=
是比较。您可以使用
getString
从结果集中读取字符串。您不需要检查用户名并进行匹配,因为您的查询应该准确返回该用户的数据,因此我将完全删除if条件,只在那里有
getInt
行。在查询中
username
后面有一个额外的括号。还有什么问题吗?似乎它应该与评论中提到的更改一起工作。谢谢@clinomaniac。但是,当我将whosOnFirst整数变量放入另一个类中时,它无法识别它。我曾认为,通过在标记为“public class void”的类中声明它,可以让我在程序中的任何地方使用这个变量。
while (rset.next())
    {
        if(rset.getInt("Username")==logonName){
            int whosOnFirst = rset.getInt("AccountHolderId");
        }