Переменная пуста после присвоения ей значения из базы данных
Я выполняю запрос, чтобы вернуть Course_Id
что связано с Course_Name
который выбирается с помощью JComboBox (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;
}
}
1 ответ
Вам следует позвонить next()
на ResultSet до получения значений из него:
if (r.next()) {
String s = r.getString("Course_Id");
}
Кроме того, вы можете сделать что-то с String
вы читаете из ResultSet
, Возможно, верните его вызывающему методу.