Код: Выделить всё
private String kelimeyiCek() {
String resimURL = null;
String cumle;
// Daha önce seçilen kelime ID'sini saklamak için değişken
int oncekiKelimeID = 0;
// Bilinenler tablosundan bir kelime seç
sql = "SELECT ingilizce_kelime, turkce_karsiligi, resim_url, cumle_kullanimi, kelimeID, status, tarih FROM bilinenler WHERE status >= 1 AND kelimeID != ? ORDER BY RAND() LIMIT 1";
try (PreparedStatement statement = baglanti.prepareStatement(sql)) {
statement.setInt(1, oncekiKelimeID); // Önceki kelimeyi hariç tut
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
String kelime = resultSet.getString("ingilizce_kelime");
dogruCevap = resultSet.getString("turkce_karsiligi");
resimURL = resultSet.getString("resim_url");
kelimeId = resultSet.getInt("kelimeID");
cumle = resultSet.getString("cumle_kullanimi");
status = resultSet.getInt("status");
upTarih = resultSet.getString("tarih");
txt_cumle1.setText(cumle);
txt_sinavKelimesi.setText(kelime);
txt_statusID.setText(String.valueOf(status));
txt_upTarihId.setText(upTarih);
// Önceki kelime ID'sini güncelle
oncekiKelimeID = kelimeId;
cumleleriGoster(kelimeId);
} else {
// Bilinenler tablosundan kelime seçilemedi, kalan soruları kelimeler tablosundan al
sql = "SELECT ingilizce_kelime, turkce_karsiligi, resim_url, cumle_kullanimi, kelimeID, status, tarih FROM kelimeler ORDER BY RAND() LIMIT 1";
try (PreparedStatement kalanSorularStatement = baglanti.prepareStatement(sql)) {
ResultSet kalanSorularResultSet = kalanSorularStatement.executeQuery();
if (kalanSorularResultSet.next()) {
String kelime = kalanSorularResultSet.getString("ingilizce_kelime");
dogruCevap = kalanSorularResultSet.getString("turkce_karsiligi");
resimURL = kalanSorularResultSet.getString("resim_url");
kelimeId = kalanSorularResultSet.getInt("kelimeID");
cumle = kalanSorularResultSet.getString("cumle_kullanimi");
status = kalanSorularResultSet.getInt("status");
upTarih = kalanSorularResultSet.getString("tarih");
txt_cumle1.setText(cumle);
txt_sinavKelimesi.setText(kelime);
txt_statusID.setText(String.valueOf(status));
txt_upTarihId.setText(upTarih);
cumleleriGoster(oncekiKelimeID);
System.out.println("çalıştı");
} else {
txt_sinavKelimesi.setText("");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return resimURL;
}
Я написал метод управления этой проблемой и попробовал его использовать, но Я сделал свой код хуже. При желании вы можете решить проблему с помощью этого механизма управления. Я также поделюсь с вами этим методом.
Код: Выделить всё
private boolean bilinenlerTablosundaSorukalmadiMi() throws SQLException {
String kontrolSorgusu = "SELECT COUNT(*) AS sayi FROM bilinenler WHERE status >= 1";
try (PreparedStatement kontrolStatement = baglanti.prepareStatement(kontrolSorgusu)) {
ResultSet kontrolResultSet = kontrolStatement.executeQuery();
if (kontrolResultSet.next()) {
int soruSayisi = kontrolResultSet.getInt("sayi");
return soruSayisi == 0; // Eğer 0 ise daha fazla soru yok demektir
}
}
return false; // Hata durumu
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... else-block
Мобильная версия