2011-10-06 3 views
1

세션에 결과 집합을 배치 할 때의 단점은 무엇입니까? 그렇지 않은 경우 가장 좋은 방법입니다. List<Map<String,String>>에 넣으려고했지만 성능에 영향을주지 않습니까?세션의 결과 집합

답변

5

ResultSet은 데이터베이스에 대해 열린 연결을 나타냅니다. 일반적으로 데이터를 가져 와서 가능한 빨리 풀에 연결하고자합니다. ResultSet을 세션에 저장하면 오랜 시간 동안 연결이 닫히지 않아 풀이 고갈되거나 데이터베이스 리소스를 불필요하게 묶을 수 있습니다.

3

지속성 클래스 java.sql은 웹 계층에서 100 피트 이내에 있어서는 안됩니다. 그들은 영속 계층에서 벗어나서는 안됩니다. 모든 ResultSet을 데이터 구조 또는 생성 된 메소드 범위의 객체에로드해야합니다. 희소 한 자원 인 데이터베이스 커서입니다.

가장 좋은 옵션은 List<Map<String, String>>이 아닙니다. 결국 데이터베이스의 모든 값은 문자열이 아닙니다. List<Map<String, Object>>을 사용하는 것이 더 좋으며, 여기서 Map은 행을 나타냅니다. 또 다른 가능성은 Map<String, List<Object>>입니다. 여기서 각 List<Object>은 열을 나타냅니다. 사용 사례에 가장 편리한 것을 사용하십시오. 무엇보다도 List<T>을 사용하십시오. T은 모든 열을 실제 방식으로 묶는 개체 유형입니다.