Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

어? 이게 되네

2022.05.25. 수요일 이공계 전문기술 연수사업 (MVC를 활용한 페이징처리 된 게시판 구현) 본문

TIL

2022.05.25. 수요일 이공계 전문기술 연수사업 (MVC를 활용한 페이징처리 된 게시판 구현)

토끼귀에진주귀걸이 2022. 5. 30. 20:45

오늘 배운 것

<c:forEach var="i" begin="1" end="${totalPage }"></c:forEach>

rownum활용하여 sql문 작성 (start부터 end까지 출력되도록)
정렬(order by no)하면서 행번호(rownum)를 붙일 수 없다 !!!
서브쿼리를 써야 함 !!!!!!!!!!!!!!
정렬한 다음 행번호를 붙임
정렬한 결과를 서브쿼리로 놓고 행 번호를 붙임

select * from (select rownum n,no,title,writer,pwd,content,regdate,hit,fname from board order by no) where n>=11 and n<=20;
select n,title from (select rownum n,title from (select title from board order by title)) where n between 5 and 9;
정렬해서 행번호를 붙여서 일부분을 검색해야 함

select no,title,writer,pwd,content,regdate,hit,fname from(select rownum n,no,title,writer,pwd,content,regdate,hit,fname title from(select * from board order by no)) where n between 5 and 9;

답변형 게시판
db에 다음과 같은 컬럼 추가 

   - b_ref(서로 관련있는 글인지 나타내기 위해서 사용함),
   - b_step(답글과 부모글들을 어떤 식으로 나타내야할 지 나타내기 위해서 사용)
   - b_level(답글의 깊이를 나타내기 위해 사용 - 답글의 답글이 있을 수도 있음!)
   
SQL> alter table board add b_ref number;

테이블이 변경되었습니다.

SQL> alter table board add b_step number;

테이블이 변경되었습니다.

SQL> alter table board add b_level number;

테이블이 변경되었습니다.

글번호 글제목 답글번호
no title b_ref                                                                          b_step                  b_level
1    a    1                                                                               0                           0
2    b    2                                                                               0                           0
3    c    3 //새글 일 시에는 자기 글번호와 동일함                 0 //부모글은 다 0  0 //부모 글은 다 0

4    b    2 //답글일 시에는 답글한 부모글의 글번호가 나옴   4                           1
5    b1  2                                                                               2 //서로 관련있는 글 중에서 글을 출력하는 순서를 위해 사용 1
6    aa  2                                                                               1 //이미 달려있는 답글들의 b_step을 1씩 증가시키고 나는 부                                                                                                      모글의 b_step+1로 설정 1
7    ff    2                                                                               3                            2 //답글일 시엔 부모글에 b_level+1

updateStep(b_ref,b_step);

 

오늘 헷갈린 것

  • rownum과 order by는 함께 할 수 없다!(서브쿼리를 써야 함)

오늘 한 생각

생각보다 sql은 어렵다.. 만만히 볼 것이 아니다..

우리가 무심코 사용하는 웹페이지에는 수많은 개발자들의 피땀눈물이 섞여있는 거구나...

페이징 처리 하나 조차도 쉽지가 않다