repeator
85
2021-09-30 21:29:20
5
199

[JAVA, SQL, Jquery] 매 초마다 서로 다른 여러개의 데이터 호출하는 방법 문의


[SQL, Jquery] 매 초마다 서로 다른 여러개의 데이터 호출하는 방법 문의


안녕하세요. 고수님의 자문이 필요하여 문의드립니다. 


jsp, java(springFramework)를 활용하여 시간별로 DB를 불러와 출력하는 기능을 만들고자 

합니다. 


내용은 다음과 같습니다. 


먼저 아래와 같이 DB table에 데이터가 있습니다. 



위 NAME 컬럼 데이터를 10초마다 8개씩 나누어 불러와야 하는데요. 


예를 들어 처음에는 {A,B,C,D,E,F,G,H}를 조회해서 불러와 

JSP페이지에 출력하고, 10초뒤 기존 불러온 데이터를 지우고,

{I,J,K,L,M,N,O,P}를 불러와야 합니다. 


그리고 다음 10초뒤에 이전 데이터를 지우고, {Q,R,S,T,U,V,W,X}를 불러오고, 

그 다음에는 {Y,Z,A,B,C,D,E,F}를 불러오는 형식입니다. 


위의 사이클을 10초마다 계속 반복하는 기능을 만들려고 하는데, 

어떻게 하면 좋을까요? 


10초마다 호출은 setinterval로 하면 될것 같은데, 어떻게 하면 좋을지

고수님들의 자문 부탁드립니다. 



0
  • 답변 5

  • yeori
    2k
    2021-09-30 21:44:13

    꼭 디비를 써야하나요?

  • 개나소나고생
    7k
    2021-09-30 22:22:51

    구현하는 목적이 무엇인가요?

  • kys8297
    37
    2021-10-01 00:20:49


    WITH aa AS

     (SELECT 1 num, 'A' eng

        FROM dual

      UNION ALL

      SELECT 2 num, 'B' eng

        FROM dual

      UNION ALL

      SELECT 3 num, 'C' eng

        FROM dual

      UNION ALL

      SELECT 4 num, 'D' eng

        FROM dual

      UNION ALL

      SELECT 5 num, 'E' eng

        FROM dual

      UNION ALL

      SELECT 6 num, 'F' eng

        FROM dual

      UNION ALL

      SELECT 7 num, 'G' eng

        FROM dual

      UNION ALL

      SELECT 8 num, 'H' eng

        FROM dual

      UNION ALL

      SELECT 9 num, 'I' eng

        FROM dual

      UNION ALL

      SELECT 10 num, 'J' eng

        FROM dual

      UNION ALL

      SELECT 11 num, 'K' eng

        FROM dual

      UNION ALL

      SELECT 12 num, 'L' eng

        FROM dual

      UNION ALL

      SELECT 13 num, 'M' eng

        FROM dual

      UNION ALL

      SELECT 14 num, 'N' eng

        FROM dual

      UNION ALL

      SELECT 15 num, 'O' eng

        FROM dual

      UNION ALL

      SELECT 16 num, 'P' eng

        FROM dual

      UNION ALL

      SELECT 17 num, 'Q' eng

        FROM dual

      UNION ALL

      SELECT 18 num, 'R' eng

        FROM dual

      UNION ALL

      SELECT 19 num, 'S' eng

        FROM dual

      UNION ALL

      SELECT 20 num, 'T' eng

        FROM dual

      UNION ALL

      SELECT 21 num, 'U' eng

        FROM dual

      UNION ALL

      SELECT 22 num, 'V' eng

        FROM dual

      UNION ALL

      SELECT 23 num, 'W' eng

        FROM dual

      UNION ALL

      SELECT 24 num, 'X' eng

        FROM dual

      UNION ALL

      SELECT 25 num, 'Y' eng

        FROM dual

      UNION ALL

      SELECT 26 num, 'Z' eng

        FROM dual

      

      )


    SELECT *

      FROM (SELECT aa.num,

                   aa.eng,

                   CASE

                       WHEN num - (SELECT sa.num FROM aa sa WHERE eng = 'Y') < 0 THEN

                        (SELECT COUNT(*) FROM aa) + num - (SELECT sa.num FROM aa sa WHERE eng = 'Y')

                       ELSE

                        num - (SELECT sa.num FROM aa sa WHERE eng = 'Y')

                   END renum

              FROM aa

             ORDER BY renum)

     WHERE renum < 8


    오라클일 경우 이 쿼리를 응용하시면 될 듯 한데......인자값 'Y'를 바꾸면서 해보세요 
  • 개봉박살
    486
    2021-10-01 09:07:24

    페이징 처리하는 쿼리를 짜신다음에 프론트 단에서 setInterval을 이용해서 페이지를 넘겨가며 호출하면 됩니다. 

    전체페이지를 다시 그리던 DOM만 다시 그리던 그건 선택하시면되구요. 

    그럼 뿅~

  • repeator
    85
    2021-10-14 09:37:25

    개봉박살님, 감사합니다. 어렵게 생각하지 않고 기존 Pagination을 바탕으로 setInterval 로 시간차 자동이동을 실행하니 너무 깔끔하게 되네요. 


    별도 추가 기능도 없이 효율적으로 작동하는 것 같습니다. 의견 감사합니다. 

  • 로그인을 하시면 답변을 등록할 수 있습니다.