JSP 3

SQL 쿼리를 JSP 에서 구현하는 이유

예전에 이렇게 코딩된 JSP 를 본 적이 있다. DB 작업을 위한 Context, Connection, Statement, ResultSet 등이 JavaBeans 에 담긴 것이 아니라 JSP 에 존재하는 것이다. 물론 ResultSet 이야 JSP 에서 사용하려면 기술될 수도 있다. 그런데, ResultSet 의 맹점(?)이 몇가지 존재하기 때문에, 이것도 ArrayList 에 담기 쉽상이다. 그리고 이러한 코딩 방식을 폄하한 가장 큰 이유는, PreparedStatement 를 이용하지 않고 Statement 를 이용하였기 때문이다. 게다가 유사한 기능을 구현한 각각의 JSP 들에 처음부터 끝까지 DB 작업용 코드가 들어가 있지 않은가..! 비슷한 기능을 수정하려고 관련된 JSP 모두를 고쳐야 하니,..

특정 화면에서 조건에 맞는 순위 목록 보여 주기

오늘 작업할 내용은 다소 복잡하다. 요건은 다음과 같다. 1. 순위 데이타 추출 및 노출 2. 특정 게시물에서만 노출 3. 특정 기간 동안만 노출 순위 데이타를 추출하려면 오라클 DB 쿼리 함수중 rank() over (order by ...) 라는 것을 이용한다. rank() 를 사용하면 1, 2, 2, 2, 5, 5, 7, .. 이런식으로 순위가 나오고.. dense_rank() 를 이용하면 1, 2, 2, 2, 3, 3, 4, ... 이런식으로 순위가 나온다. 여기서는 partition 옵션을 사용할 필요는 없다. 그런데 rank 함수는 튜닝을 해도 속도가 느릴 수밖에 없다. 이를 해결하려면 중간 테이블을 하나 두어서 순위 목록을 가져올 때는 중간 테이블에서 select 해 오고, 특정 조건에서 중..