내 데이터베이스에 uid1 - 누군가의 ID, uid2 - 그의 친구가있는 테이블이 있습니다.Java ResultSet with postgresql
나는 누군가의 친구가있는 곳에서 5 깊이 연결까지 목록을 만들고 싶습니다.
그래서 나는 다음과 같은 재귀 방법 내장 :private void recursive(int theUid,ResultSet rs,ArrayList<Integer> friends,int count,int next,PreparedStatement pstmt) throws SQLException{
if(count>=1 && next==theUid){
return;
}
else if(count>=DEPTH_OF_CONNECTION){
return;
}
else{
pstmt.setInt(1,next);
rs=pstmt.executeQuery();
count++;
while(rs.next()) {
friends.add(rs.getInt(1));
recursive(theUid,rs,friends,count,rs.getInt(1),pstmt);
}
}
}
}
을 그리고 나는 다음과 같은 오류 있어요 :
이Exception in thread "main" org.postgresql.util.PSQLException: This ResultSet is closed. at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2654) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1786)
당신이 날 문제가 무엇을 찾을 수 있습니까?
을 당신은 당신이 PostgreSQL을 단지 하나의 문으로 할 수있는 알고
Postgres jdbc driver doc 그것을 확인하는 것? –
매 단계마다 서버와 대화하는 것은 매우 비쌉니다. [재귀 CTE] (http://www.postgresql.org/docs/9.1/static/queries-with.html)를 사용하는 단일 쿼리가 최선의 방법입니다. –