【问题标题】:Variable empty after assigning value from database to it将数据库中的值分配给变量后为空
【发布时间】:2015-06-08 12:16:41
【问题描述】:

我正在运行查询以返回与在表单中使用 JComboBox (slcCourse) 选择的 Course_Name 关联的 Course_Id。查询似乎是正确的,至少我是这样认为的,并且 JComboBox 从表中返回正确的Course_Name。当我尝试在全局或局部变量中分配返回的值(应该是数据库表中的 Course_Id)并使用 JOptionPane 该变量输出它时,它是空的。我不确定为什么它没有被分配给变量,任何帮助将不胜感激。

到数据库的连接工作正常,因为我已经使用连接详细信息在同一类中插入了记录。所以问题不在这里。

代码如下:

public void courseIdentifier()
    {
        Connection conDBase = null;
        Statement stmt = null;
        ResultSet r = null;

        try
        {
            conDBase = getConnection();
            stmt = conDBase.createStatement();
            String courseSql = "SELECT Course_Id FROM a_courses WHERE Course_Name = '" 
                                    + slcCourse.getSelectedItem() + "';";
            r = stmt.executeQuery(courseSql);

            String s = r.getString("Course_Id");
            JOptionPane.showMessageDialog(null, s);
            conDBase.close();
        }
        catch(SQLException ex)
        {
            ex.printStackTrace();
        }
    }

如果您想查看连接详细信息,请点击此处:

public class ConnectionDetails
{
    private static final String username = "root";
    private static final String password = "root";
    private static final String driver = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost:3306/assignment?autoReconnect=true";

    public static String getUsername()
    {
        return username;
    }

    public static String getPassword()
    {
        return password;
    }

    public static String getDriver()
    {
        return driver;
    }

    public static String getUrl()
    {
        return url;
    }
}

【问题讨论】:

    标签: java mysql database swing variables


    【解决方案1】:

    在从 ResultSet 获取值之前,您应该调用 next()

    if (r.next()) {
        String s = r.getString("Course_Id");
    }
    

    另外,您可能想对从ResultSet 中读取的String 做一些事情。也许将其返回给方法的调用者。

    【讨论】:

    • 谢谢!我不知道这么简单。我要做的是将返回的值分配给一个全局变量,以便我可以在另一个方法中使用它来运行不同的查询以将该 course_id 添加到另一个表中。
    猜你喜欢
    • 2021-02-08
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多