私のプログラムの特定の重症度レベル(高、中、低)を扱う病院のすべてをプリントアウトしようとしています。 。複数のJDBCの結果を取得しようとしています
最初は正しい重大度を見つけますので、データベース内の別のテーブルと照合して病院を見つけて印刷します。しかし、それは病院の1つだけを印刷しています(Imでテストする重大度が高いものは2つありますが、他のものはありません)。
私のループが間違っているような気がします。
ありがとうございました。
// Create selection query, get relevant hospitals
String select = "SELECT * FROM hospitals WHERE hospitalSeverityHandling = '" + medicalCondition + "'";
// Get results hospitals in the database
ResultSet results = statement.executeQuery(select);
// When hospitals have been found
if (results.next())
{
results.first();
// Get hospitals with relevant severity
//String hospital = results.getString("hospitalName");
//System.out.println(hospital);
// Respond to user, get hospital selection
// TODO Hospital Selection
JOptionPane.showMessageDialog(null, "A list of hospitals have been retrieved for severity level: " + medicalCondition, "Select available hospital", JOptionPane.INFORMATION_MESSAGE);
// Loop hospitals
while(results.next())
{
String hospital = results.getString("hospitalName");
System.out.println(hospital);
}
}
は 'while'ループの前に')( 'results.firstを呼び出さないでください。私はあなたが最初のレコードをスキップしていると思います。また、あなたのクエリは注入に脆弱に見えます。準備されたステートメントの使用を検討してください。 try-with-resourcesも使用することを検討してください。 – bradimus
ありがとうございます。誰かがすでに修正をコメントしていましたが、正しいとマークしようとすると削除されました。 –