2012-10-28 2 views
0

PreparedStatement를 사용하여 SELECT를 수행하려고하는데 데이터가 존재 함에도 불구하고 결과가 반환되지 않습니다. 대신 Statement를 사용하면 원하는 결과를 얻을 수 있으므로 PreparedStatement에서 아무 것도 얻지 못하는 이유를 확신 할 수 없습니다.
아이디어가 있으십니까?PreparedStatement 쿼리에서 반환 된 데이터가 없습니다.

여기 내 코드입니다 : 또한

String species = "Snail"; 
PreparedStatement preparedStatement = con.prepareStatement("Select * from lifeforms where species=?",PreparedStatement.RETURN_GENERATED_KEYS); 
preparedStatement.setString(1, species); 
preparedStatement.execute(); 
ResultSet resultSet = preparedStatement.getGeneratedKeys(); 

- 내가 부울 값을 기대하는 결과 집합 변경해야합니다 말, 난 그냥

resultSet = preparedStatement.execute(); 

시도하지만이 컴파일되지 않습니다.

이것에 대한 통찰력이 있으면 크게 감사하겠습니다.

죄송합니다. 이것은 명백한 것이지만 거의 의식을 잃을 때까지 문서를 읽었으며 단지 자바 만 배우는 것입니다. 이 부울 수익을 예상 컴파일러가 제안되었다 있지만, execute() 방법에는 반환 값이 없습니다

다른 같은 일에 부착되는 경우 누군가에 .. -

답변

2

아 그래서 나는 마지막으로이 질문에 대한 답을 발견했다 값. 어쩌면 성공 여부에 대해 true 또는 false를 반환 할 수 있습니까?

executeUpdate() 메서드는 업데이트/삽입 또는 삭제 된 레코드 수의 int 값을 반환합니다.

쿼리 문의 결과 집합 (예 : someTable에서 Select *)을 얻으려면 ResultSet rs = preparedStatement.executeQuery() 메서드를 사용하십시오. 그러면 실제 쿼리 결과가 ResultSet 변수로 반환됩니다.

2

execute()execute() 펑크 턴은 부울 값을 반환하므로 select 문을 실행하려면 executeQuery()을 사용해야합니다. 그러면 결과 집합의 객체에이 값을 넣을 수 없습니다.

관련 문제