我正在运行查询以返回与在表单中使用JComboBox(Course_Id
)选择的Course_Name
关联的slcCourse
。查询似乎是正确的,至少我是这么认为的,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;
}
}
答案 0 :(得分:4)
在获取值之前,您应该在ResultSet上调用next()
:
if (r.next()) {
String s = r.getString("Course_Id");
}
此外,您可能希望对从String
中读取的ResultSet
做一些事情。也许将它返回给方法的调用者。