2014-04-26 2 views
0

내가 작성한 준비된 명령문을 캐시하고 싶습니다. 그들이 구축 한 연결이 CG로되어있을 때 나는 준비된 명령문을 잊고 싶습니다.JDBC 연결이 PreparedStatement에 대한 하드 참조를 보유합니까?

연결 -> 명령문의 WeakHashMap을 만들고 싶습니다. 그러나 작동하지 않습니다. 문은 연결 객체에 대한 하드 참조를 보유하므로 연결이 GC되지 않습니다.

그래서 연결 개체의 WeakHashMap을 각 연결에 대한 준비된 문에 약한 참조로 저장할 수 있습니다. 그러나 연결 개체가 명령문에 대한 하드 참조를 보유하지 않으면 명령문에 GC가 수행됩니다. 다른 한편으로는, 그것이하는 경우에 모두는 감미 롭다.

만약 그렇다면 알고 계십니까?

답변

0

확인. 첫째, 행동이 정의되어 있지 않습니다. 둘째, 대답은 '아니오'입니다. 준비된 명령문은 사용자가 어려운 참조를하지 않는 한 GC로 처리됩니다.

나는 자바 참조와 실제로 코드가 연결을 만들고 명령문 개체를 준비하지 않는다는 사실로 인해 실제로 무엇을하려고 할 수 없다고 생각한다.

오 잘. 필자가 필요할 때마다 PreparedStatements를 작성하고 사용 후 풀어 놓을 것입니다.

관련 문제