为什么我的 SQL 查询中找不到列?

Why am I getting column not found in my SQL query?

我正在尝试从我的 SQL 数据库中获取数据,但我收到一条错误消息,指出 'Student_ID' 列不存在,尽管它确实存在于数据库中。

这是我正在做的事情:

public String[] getWeightedMarks(String s)
{
    int h = Integer.parseInt(s);

    String query = "SELECT md.Weighted_Marks FROM marks_details md " +
             "WHERE md.Student_ID = " + h;

    List<String> obj = new ArrayList<String>();

    try
    {
        ResultSet rs = stmt.executeQuery(query);

        while (rs.next())
        {
            obj.add((rs.getString("Weighted_Marks")).toString());
        }
    }
    catch(SQLException e)
    {
        System.out.println("Problem in Query");
        e.printStackTrace();
    }

    String[] a = (String[]) obj.toArray(new String[obj.size()]);

    return a;
}

这是我遇到的错误:

Problem in Query
java.sql.SQLException: Column 'Student_ID' not found.

这是我的数据库的屏幕截图,我已连接到此数据库:

您的代码似乎无法解析查询,原因尚不明朗。相反,您应该使用 PreparedStatement,例如

PreparedStatement statement = connection.prepareStatement(
             "SELECT md.Weighted_Marks FROM marks_details md WHERE md.Student_ID = ?";
statement.setInt(1, h);
ResultSet rs = statement.executeQuery();

这应该有助于减少任何潜在的 SQL 注入和语法错误。