매우 간단한 쿼리를 작성하고 있습니다. 그러나 나는 오류를 찾을 수 없습니다. 다음은 코드입니다.왜이 쿼리가 작동하지 않습니까?
con = DBConnect.connect();
try {
PreparedStatement query = (PreparedStatement) con.prepareStatement("SELECT * FROM accounts where iban=?");
query.setString(1, iban);
ResultSet result = (ResultSet) query.executeQuery();
double oldBalance;
} catch (SQLException e) {
System.out.println(e);
}
테이블 이름은 계정이며, iban이라는 varchar 유형의 열이 존재합니다. 나는 디버그를했기 때문에 query.setString(1, iban);
라인이 iban을 올바르게 설정했다고 확신한다.
그러나 ResultSet result = (ResultSet) query.executeQuery();
줄에 오는 경우 갑자기 마지막 줄로 이동합니다.이 줄의 마지막 줄은 "}"입니다. 그것은 catch 블록에 들어 가지 않아서 문제를 볼 수 없습니다.
무엇이 잘못 되었습니까?
감사
편집 : 쿼리가 성공적으로 실행처럼 보인다.
double oldBalance=result.getDouble("iban");
을 그리고 그것은 나에게 오류 제공 : 지금하는 executeQuery 줄 끝에서 난 그냥 할
java.sql.SQLException: Before start of result set
사람이 여기 나에게 문제를 말할 수 있습니까?
먼저 메서드를 반환 할 때와 같은 형식으로 개체를 캐스팅 할 필요가 없습니다. ResultSet과 PreparedStatement 캐스트는 중복됩니다. 둘째, 연결에서 기본 DB를 선택 했습니까? 연결 지정 스키마에 의존하는 대신 항상 명시 적이어야하며 SELECT * FROM schema.table이어야합니다 (공용 스키마에 있지 않은 경우 MySQL과 만 작동합니다) –
프로젝트를 지우고 다시 작성하십시오. 그런 다음 다시 실행하십시오. –
'oldBalance' 변수가 지정되지 않았습니다. 'executeQuery' 라인 이후에,'try' 블록에서 아무것도하지 않기 때문에 마지막 라인으로 건너 뛸 것입니다. –