根据输入查找和提取数据库值(Java和SQL Server)
java新手。根据输入查找和提取数据库值(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");
我正在尝试编写一个类,该类将输入用户名,对用户名运行查询以查找ID,然后在所有其他类的“where子句”中使用该ID 这是我执行的语句(它将只返回一行的记录集): 下面是我通过用户名提取ID的尝试
while (rset.next())
{
if(rset.getInt("Username")==logonName){
int whosOnFirst = rset.getInt("AccountHolderId");
}
我在论坛上看到了另一个答案,它说不能将数据库值分配给变量。如果是这样,什么是更好的策略
(此外,我意识到我没有参数化,但我希望在解决该问题之前能使其正常工作。这是一个课程作业,所以我不担心黑客攻击)
另外,谢谢,我修复了上面代码中的双等号(和额外的括号)。以下是关于代码的一些注释:
将从结果中获取列Username,但由于getInt,它也会查找整数列。您没有在sql语句中选择该列,因此将出错李>rset.getInt(“Username”)
- 如果选择它并获取字符串,请使用
而不是.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");
}