2013-12-17 2 views
0

Tomcat 7, MySql 5.5 및 JSP로 가정하고 코드화 된 DAO를 손으로 코딩하면 ...JSTL 결과 또는 객체 목록을 반환하는 서블릿?

"프로덕션"응용 프로그램의 perspactive에서 다음 쿼리 아키텍처간에 중요한 차이가 있습니까?

서블릿은 DAO를 호출하여 항목을 가져온 다음 JSP에 전달하여 속성 내에 표시합니다.

1) DAO는 다음을 사용하여 JSTL 결과를 반환합니다. result = ResultSupport.toResult (rs);

2) DAO는 데이터로 가득 찬 객체를 포함하는 목록을 반환합니다.

나에게 그것은 당신이 물질적으로 조작하려고한다면 더 좋다고 생각합니다. 즉 그들을 업데이트하십시오. 그러나 객체 목록은 데이터 테이블을 표시하기에는 너무 많은 작업입니다. 사용 빈도가 높은 응용 프로그램의 경우 목록에 거의 많은 실제 이점이없는 많은 서버 자원이 사용됩니다. 또한 다양한 디스플레이 요구 사항에 맞게 테이블을 조인하면 많은 양의 코딩 작업과 유지 관리가 필요합니다.

DAO가 JSTL 결과를 반환하는 것은 경량 디스플레이 목적으로 서버에서 훨씬 쉬워지고 유지 관리를 코딩하는 것이 훨씬 쉬울 것으로 보입니다.

JSP로 JSTL SQL 태그를 사용하는 것이 프로덕션 환경에서 눈살을 찌푸린다는 것을 알고 있습니다. 그러나 왜 내가 결코 이해하지 못했지만 ... Java 서블릿에서 JSTL 결과를 사용하면 동일한 부정적인 의견을 이끌어 낼 수 있습니까?

나는이 두 가지 방법 사이에서 선호되는 아키텍처를 설명하는 확실한 안내서를 찾을 수 없었습니다. JSTL 결과의 편리함을 감안할 때 너무 드물게 언급되는 것이 놀랍습니다.

의견이 있으십니까?

감사

+0

서버 및 환경에서 실제 결과를 찾으려면 각 옵션을 사용하여 성능을 테스트하여 최상의 결과를 얻으십시오. IMO는 List 접근법을 사용하며 프로파일 러를 사용하여 실제 병목 현상을 확인하는 경우를 제외하고는이 솔루션을 과장하려고하지 마십시오. –

+0

[Java에서 ResultSet을 반환하는 모든 방법에 대한 답변] (http://stackoverflow.com/questions/20603240/any-way-to-return-a-resultset-in-java#comment30829384_20603240) SO 게시물 수 (비록 당신과 같은 시나리오는 논의하지 않지만) 당신에게 관심을 가져라. –

답변

0

DAO의 주요 아이디어는 데이터를 액세스 로직을 캡슐화하고 비즈니스 로직을 분리하는 것입니다. Option 2 그냥 그렇게 않습니다.

Option 1은 레코드 집합의 정확한 구조를 알아야하기 때문에 비즈니스 논리를 데이터 모델과 밀접하게 결합시킵니다. 데이터베이스 구현을 리팩터링하기로 결정한 경우 비즈니스 로직 계층의 일부를 다시 작성해야합니다.