내가 작성한 준비된 명령문을 캐시하고 싶습니다. 그들이 구축 한 연결이 CG로되어있을 때 나는 준비된 명령문을 잊고 싶습니다.JDBC 연결이 PreparedStatement에 대한 하드 참조를 보유합니까?
연결 -> 명령문의 WeakHashMap을 만들고 싶습니다. 그러나 작동하지 않습니다. 문은 연결 객체에 대한 하드 참조를 보유하므로 연결이 GC되지 않습니다.
그래서 연결 개체의 WeakHashMap을 각 연결에 대한 준비된 문에 약한 참조로 저장할 수 있습니다. 그러나 연결 개체가 명령문에 대한 하드 참조를 보유하지 않으면 명령문에 GC가 수행됩니다. 다른 한편으로는, 그것이하는 경우에 모두는 감미 롭다.
만약 그렇다면 알고 계십니까?