-2
public String searchSinger(String singer) throws SQLException
{
PreparedStatement ps = null;;
ResultSet rs = null;
String query = "SELECT id FROM ng_singers WHERE name = ?";
try{
ps = connection.prepareStatement(query);
ps.setString(1, singer);
rs = ps.executeQuery();
if(rs.next())
{
String id = rs.getString(1);
display = display + "\t" + id;
}
System.out.println(display);
return display;
}
catch(Exception e){
return display;
}
finally{
ps.close();
rs.close();
}
}
このように、最初のレコードに名前を入力するとこのコードは機能しますが、レコード名のDBにテーブルng_singersがあります。1 name:michael、id:2 name:janet、など。テーブルの合計9行。したがって、クエリはmichaelという名前と5,7,9行の3つの他の名前に対してのみ機能します。クエリは2,3,4,6,8行のデータを取得しません。selectステートメントは最初のレコードでのみ動作し、他のレコードから情報を取得しません。
「FROM DOB、氏名、性別、レコードをSELECT」のようなあなたの「DOBを選択」にそれらを追加する必要がありますより明確。クエリは特定のレコードに対してのみ機能し、すべてのレコードに対しては機能しません。 – user2900638
@ user2900638問題は変わりません。あなたは '(rs.next())'を使うべきである 'if(rs.next())'を使っています。 –