id (정수)를 가져 오는 작은 함수를 작성하고 거리가있는 친구 수를 반환하려고합니다. < = 3 (친구 정보는 테이블에 저장 됨 ) : Likes (uid1, uid2)는 다음을 의미합니다. uid1은 uid2를 좋아합니다. 나는 다음을 수행, 그리고PreparedStatement의 JDBC 오류
String likesDistance =
"SELECT uid2 " + //DISTANCE = 1
"FROM Likes " +
"WHERE uid1 = ? " +
"UNION " +
"SELECT L2.uid2 " + //DISTANCE = 2
"FROM Likes L1, Likes L2 " +
"WHERE L1.uid1 = ? and L1.uid2 = L2.uid1 " +
"UNION "+
"SELECT L3.uid2 " + //DISTANCE = 3
"FROM Likes L1, Likes L2 , Likes L3 " +
"WHERE L1.uid1 = ? and L1.uid2 = L2.uid1 and L2.uid2 = L3.uid1 ";
:
PreparedStatement pstmt2 = con.prepareStatement(likesDistance);
pstmt1.setInt(1, u);
pstmt1.setInt(2, u);
System.out.println("2");
pstmt1.setInt(3, u);
System.out.println("3");
pstmt1.setInt(4, u);
pstmt1.setInt(5, u);
유는 전에 언급으로, 함수에 전달 된 정수 어디
나는이 간단한 쿼리를 썼다.
이 코드는 모두 '시도'블록 내에 있습니다. 실행하려고하면 첫 번째 인쇄물 ("2")이 인쇄되지만 두 번째 파일 ("3")은 인쇄되지 않고 다음과 같은 예외 메시지가 나타납니다.
열 색인이 범위를 벗어났습니다. 열 수 : 2.
왜 이런 식으로하고 원하는대로 작동하도록 변경할 수 있습니까?
고마워요.
감사합니다. 복사하여 붙여 넣기 오류가 발생했습니다. – limlim