JDBC 无法识别列

JDBC Columns not recognized

我一直在尝试制作登录页面,但 运行 遇到了从包含用户凭据的数据库中提取信息的问题。当 运行 宁代码我得到以下错误 "Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=USERNAME, DRIVER=3.68.61" 意味着(我认为)无法找到列用户名,但它在那里。 table USERS 包含用户名、密码、f_name 和 l_name 列。此应用程序的用户名和密码通过 JSP 收集并传递给 servlet,后者又调用以下 .java 已传递用户输入的用户名和密码:

public class Database {
public String lookup( String username, String password) throws SQLException {

    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultset = null;

    String f_name = "";
    String query = "SELECT f_name FROM USERS WHERE username = ? AND password = ?";
    try
    {
        System.out.println("Connecting to Database");
        Class.forName("com.ibm.db2.jcc.DB2Driver");
        connection = DriverManager.getConnection("jdbc:db2://ipaddress:port/database name", "username", "userpassword");
        System.out.println("Connection Successful");


        statement = connection.prepareStatement(query);
        statement.setString(1, username);
        statement.setString(2, password);
        resultset = statement.executeQuery();

        if( resultset.next())
        {
            f_name = resultset.getString("f_name");
        }
    }

    catch(ClassNotFoundException error)
    {
        System.out.println("Error: " + error.getMessage());
    }

    catch ( SQLException error)
    {
        System.out.println("Error: " + error.getMessage());
    }

    finally
    {
        if( connection != null)
        {
            connection.close();
        }

        if( statement != null)
        {
            statement.close();
        }

        if( resultset != null)
        {
            resultset.close();
        }

    }//end finally

    return f_name;
}
}

对正在发生的事情有什么想法吗?

会不会是您用小写字母创建了列?尝试 select colname from syscat.columns where tabname = 'USERS'。如果列以小写字母显示,则必须在每个查询中引用它们:select "f_name" from users where "username" = 'whatever'.

42703 表示检测到未定义的列、属性或参数名称。

这是具有不同 DB2 错误代码的 link https://urssanj00.wordpress.com/2008/03/04/db2-sql-error-code-and-description/