-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();
}
}
이렇게 첫 번째 레코드에 이름을 입력했지만 모든 레코드에서 작동하지 않을 경우이 코드가 작동합니다. 레코드 ID를 가진 db에 ng_singers 테이블이 있습니다. 1 name : michael, id : 2 name : janet, 등등. 표에 총 9 개의 행이 있습니다. 따라서 쿼리는 michael이라는 이름과 5,7 및 9 행의 다른 3 개의 이름에 대해서만 작동합니다. 쿼리는 행 2,3,4,6 및 8에 대한 데이터를 검색하지 않습니다.select 문은 첫 번째 레코드에서만 작동하며 다른 레코드에서 정보를 검색하지 않습니다.
"FROM 생년월일, 이름, 성별, 레코드를 선택하십시오"와 같은 "DOB 선택" 더 분명한. 쿼리는 모든 레코드가 아닌 특정 레코드에서만 작동합니다. – user2900638
@ user2900638 문제는 동일하게 유지됩니다. 당신은'while (rs.next())'를 사용해야하는'if (rs.next())'를 사용하고 있습니다. –