Зачем выбирать оператор всегда возвращает последние вставленные значения?JAVA

Программисты JAVA общаются здесь
Anonymous
Зачем выбирать оператор всегда возвращает последние вставленные значения?

Сообщение Anonymous »

Когда я пытаюсь выбрать запись, используя подготовленное заявление, он всегда дает мне последние вставленные значения, которые я недавно добавил. Если запись существует, таблица иностранных ключей заполнит значения. Мои основные и иностранные ключевые таблицы работают хорошо. Значения, заполняющие соответствующие их соответствующие компоненты, но не дают мне правильных значений. Есть помощь? src = "https://i.sstatic.net/utlwf.png"/>
Выберите запрос:

Код: Выделить всё

String searchSECTIONNAME = "SELECT * FROM allsections_list WHERE SECTION_NAME = ?";//1st Select Statement

String searchSECTIONSETTINGS = "SELECT allsections_list.`SECTION_ID`, allsections_settings.ADVISER_ASSIGNED, allsections_settings.SECTION_POPULIMIT,\n" +
"allsections_settings.ROOM_ASSGN, allsections_settings.YRLEVEL_ASSGN, allsections_settings.SCHOOL_YEAR, allsections_settings.SESSION_ASSIGNED\n" +
"FROM allsections_list\n" +
"RIGHT JOIN allsections_settings\n" +
"ON allsections_list.`SECTION_ID`=allsections_settings.`SECTION_ID`";//2nd Select Statement
Итак, что я здесь сделал, это соединение в столбце section_name в таблицу иностранных ключей, используя правое соединение . Если запись существует, она присоединится к двум таблицам.

Код: Выделить всё

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String searchSection = Section_SearchSection_Textfield.getText();

try (Connection myConn = DBUtil.connect();
PreparedStatement myFirstPs = myConn.prepareStatement(searchSECTIONNAME);)
{
myFirstPs.setString(1, searchSection);

try (ResultSet myFirstRs = myFirstPs.executeQuery())
{
int resultCounter = 0;
while (myFirstRs.next())
{
String mySectionName = myFirstRs.getString(2);//Get the value of SECTION_NAME
Section_SectionName_TextField.setText(mySectionName);
Section_SectionName_TextField.setEnabled(true);

try (PreparedStatement mySecondPs = myConn.prepareStatement(searchSECTIONSETTINGS))
{
try (ResultSet mySecondRs = mySecondPs.executeQuery())
{
while (mySecondRs.next())
{
String myAdviserAssigned = mySecondRs.getString(2);
Section_Student_Limit_ComboBox1.setSelectedItem(myAdviserAssigned);
Section_Student_Limit_ComboBox1.setEnabled(true);

String mySectionPopulation = mySecondRs.getString(3);
Section_Student_Limit_ComboBox.setSelectedItem(mySectionPopulation);
Section_Student_Limit_ComboBox.setEnabled(true);

String myRoomAssigned = mySecondRs.getString(4);
Section_Room_Assignment_ComboBox.setSelectedItem(myRoomAssigned);
Section_Room_Assignment_ComboBox.setEnabled(true);

String myYearLevelAssigned = mySecondRs.getString(5);
Section_Session_Level_ComboBox.setSelectedItem(myYearLevelAssigned);
Section_Session_Level_ComboBox.setEnabled(true);

String mySchoolYear = mySecondRs.getString(6);
Section_SchooYear_ComboBox.setSelectedItem(mySchoolYear);
Section_SchooYear_ComboBox.setEnabled(true);

String mySessionAssigned = mySecondRs.getString(7);
Section_Session_Settings_ComboBox.setSelectedItem(mySessionAssigned);
Section_Session_Settings_ComboBox.setEnabled(true);

resultCounter++;

}//end of loop mySecondRs (ResultSet)
}//end of try mySecondRs (ResultSet)
}//end of try mySecondPs (PreparedStatement)

}//end of loop myFirstRs (ResultSet)
if (resultCounter == 1)//If exist
{
JOptionPane.showMessageDialog(null, "Data Found");
}
else//If not exist
JOptionPane.showMessageDialog(null, "No Data Found");
}//end of try myFirstRs (ResultSet)

}//end of try myFirstPs (PreparedStatement)

catch (SQLException e)
{
DBUtil.processException(e);
}//end of catch
}
< /code>
Как вы можете увидеть здесь. В моем первом [b] resultset [/b] myfirstrs 
Когда я ищу существующий section_name значения внешнего ключа будут заполняться. Если что -то в моей петле поправляют меня. Заранее спасибо!
Обновление! Потому что без этого база данных вернет то, что она хочет, так что я сделал, это изменить запрос и добавить пункт «Порядок по заказу», подобное этому: < /p>
String searchSECTIONSETTINGS = "SELECT allsections_list.`SECTION_ID`, allsections_settings.ADVISER_ASSIGNED, allsections_settings.SECTION_POPULIMIT,\n" +
"allsections_settings.ROOM_ASSGN, allsections_settings.YRLEVEL_ASSGN, allsections_settings.SCHOOL_YEAR, allsections_settings.SESSION_ASSIGNED\n" +
"FROM allsections_list\n" +
"RIGHT JOIN allsections_settings\n" +
"ON allsections_list.`SECTION_ID` = allsections_settings.`SECTION_ID`" +
"ORDER BY allsections_list.SECTION_ID";
< /code>
Все еще дает мне неправильные значения, когда я запускаю проект. Я попытался запустить это в запросе NetBeans и дать мне значения в порядке ASC.>

Подробнее здесь: https://stackoverflow.com/questions/362 ... ted-values

Вернуться в «JAVA»