Java에서 preparedStatement를 사용하여 MySql의 테이블에서 두 개의 열을 가져옵니다.이 쿼리는 유효하며 mySql DB에서 직접 실행하면 행을 반환합니다. 이 메소드 호출의 경우, ResultSet은 각 ResultSet.next() 호출에 "false"값을가집니다.executeQuery에서 ResultSet이 false입니다. 행이 존재하는 경우에도 자바가 발생합니다.
private ResultSet fetchFriends(int lActProfId) throws SQLException {
// TODO Auto-generated method stub
String selectRelationQry= "SELECT friend_id, type FROM fs_relationship WHERE profile_id =?";
System.out.println("---- In method FetchAndInsertInWall()->fetchFriends - Qry: "+selectRelationQry);
pst = lCon.prepareStatement(selectRelationQry);
pst.setInt(1, lActProfId);
System.out.println("lActProfId: "+ lActProfId);
ResultSet res3 = pst.executeQuery();
System.out.println("---- temp--- In method FetchAndInsertInWall()->fetchFriends query has no Results");
if(!res3.next()){
System.out.println("---- In method FetchAndInsertInWall()->fetchFriends query has no Results");
} else {System.out.println("Elements in res3: "+res3.next() + res3.next() + res3.next());
}
pst = null;
return res3;
}
내가 콘솔에 다음과 같은 출력을 얻고있다 :
---- In method FetchAndInsertInWall()->fetchFriends - Qry: SELECT friend_id, type FROM fs_relationship WHERE profile_id =?
lActProfId: 5002
---- temp--- In method FetchAndInsertInWall()->fetchFriends query has no Results
Element in res31: false
----> WallInsertions Failed for Uid: 5002
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:855)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2710)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2851)
at com.fs.javadbact.FetchDataAndInsertInWall.fetchAndInsertInWall(FetchDataAndInsertInWall.java:64)
at com.fs.javadbact.ConsumerTest.run(ConsumerTest.java:86)
at java.lang.Thread.run(Unknown Source)
Jan 12, 2014 3:34:57 AM com.fs.javadbact.ConsumerTest run
는이 문제를 해결하고 정확한 데이터를 적절한의 ResultSet을 얻는 방법을 도와주세요 아래는 코드입니다.
당신은 물어보기 전에 결과가 없다는 것을 말하는'system.out'을 가지고 있으며,'.next'를 3 번 사용하고 있습니다. – nachokk
나는 당신이 원하는 것을 얻지 못합니까?! –
이 없으면 next() (결과에서 반복)을 클릭하여 오류를 발생시킬 수있는 데이터베이스의 값을 얻을 수 없습니다. 동일한 인수를 사용하여 정확히 동일한 쿼리가 db browsing의 행을 반환하면 도구를 사용하면 db browsing 도구가 삽입되었지만 아직 커밋되지 않은 행을 반환하거나 코드가 데이터베이스 탐색 도구와 동일한 데이터베이스/스키마를 사용하지 않음을 의미합니다. –