일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PDA/모바일
- 프로그래밍팁
- ipod touch
- TOUCH
- 윈터보드
- winterboard
- 한동대
- java
- m180k
- RW6100
- Clie
- 개발
- oracle
- 한동대학교
- 자바
- 갤럭시탭
- 생활의 지혜/정보
- 컴퓨터 TIP & TECH
- 한동
- SDS
- iPod
- GALAXYTab
- 아이팟
- 오라클
- 터치
- flex
- 팁
- backlight
- JSP
- 자바스크립트
- Today
- Total
fairworld's life
개발 Tip 본문
1. java.sql.SQLException: ORA-00911: invalid character 시 체크해 봐야 할 1순위
query = "select * from ( select rownum as rnum, A.* from ( select * from TBL_PROGRAM ) A where rownum <= (? * 10) order by rownum desc ) where rownum <= 10 order by rnum asc;";
쿼리 끝에 ; 있어서 그렇다--;
;빼
2. 계층형 게시판 구현
-
blogVO.setBltItemOrd(blogDAO.getMaxItemOrd(blogVO.getBltItemGrpCd()));
blogVO.setReplLvl(blogVO.getReplLvl()+1);
계층형(혹은 답변형) 게시판을 구현하기 위해서는 3가지의 컬럼이 필요하다.
게시물 그룹 코드(답변 게시물들을 위치시키기 위해서), 게시물 그룹내 순서(답변이 달린 순서), 게시물 레벨(들여쓰기 용)
새로운 게시물의 경우 게시물 그룹코드(이하 grp)는 자신의 그룹번호로 넣고
게시물 그룹내 순서(이하 ord)는 0으로
게시물 레벨(이하 lvl)은 0으로 입력한다.
기존 게시물에 답변을 등록하는 경우
게시물 그룹코드는 원글의 그룹코드를 참조하여 입력하고
게시물 그룹내 순서는 현재 참조하는 그룹코드로 아래와 같이 쿼리하여 가져온 값을 입력하고 (게시물 그룹내 가장 큰 값으로 등록)
SELECT MAX(ord)+1 FROM TABLE WHRER grp = ?
게시물 레벨은 원글의 레벨을 참조하여 +1 하여 저장한다.
답변형 게시판 구조로 보여지게 쿼리하여 게시판 구성하는 법
-
SELECT BLT_ITEM_TEME, BLT_ITEM_CD, REG_DTHMS, REG_PRSN_NM, INQ_CNT, DEL_YN, ATMT_FILE_YN, REPL_LVL
FROM TBNYPD16
#if($vo.searchCondition.equals("0"))
WHERE BLT_ITEM_TEME LIKE '%' || :vo.searchKeyword || '%'
#else
WHERE REG_PRSN_NM LIKE '%' || :vo.searchKeyword || '%'
#end
AND DEL_YN LIKE '%' || :vo.delYn || '%'
AND BLT_BD_CD =:vo.bltBdCd
ORDER BY REG_DTHMS DESC, BLT_ITEM_GRP_CD DESC, BLT_ITEM_ORD ASC, BLT_ITEM_CD DESC
참고 쿼리에서처럼 그룹코드와 순서를 적절히 배합하여 쿼리가 되도록 한다.
3. 계층형 게시판에서 이전글 다음글 구현
게시물 그룹코드와 게시물 그룹내 순서를 적절히 사용하여 쿼리를 하면 된다.
ROWNUM의 경우 한줄 데이터만을 가져오게 하기 위함
- SELECT BLT_ITEM_TEME, BLT_ITEM_CD
FROM
(SELECT BLT_ITEM_TEME, BLT_ITEM_CD
FROM TBNYPD16
#if($vo.searchCondition.equals("0"))
WHERE BLT_ITEM_TEME LIKE '%' || :vo.searchKeyword || '%'
#else
WHERE REG_PRSN_NM LIKE '%' || :vo.searchKeyword || '%'
#end
AND (( BLT_ITEM_GRP_CD =:vo.bltItemGrpCd AND BLT_ITEM_ORD < :vo.bltItemOrd) OR BLT_ITEM_GRP_CD > :vo.bltItemGrpCd)
AND DEL_YN LIKE '%' || :vo.delYn || '%'
ORDER BY BLT_ITEM_GRP_CD ASC, BLT_ITEM_ORD DESC)
WHERE ROWNUM <=1
- SELECT BLT_ITEM_TEME, BLT_ITEM_CD
FROM
(SELECT BLT_ITEM_TEME, BLT_ITEM_CD
FROM TBNYPD16
#if($vo.searchCondition.equals("0"))
WHERE BLT_ITEM_TEME LIKE '%' || :vo.searchKeyword || '%'
#else
WHERE REG_PRSN_NM LIKE '%' || :vo.searchKeyword || '%'
#end
AND (( BLT_ITEM_GRP_CD =:vo.bltItemGrpCd AND BLT_ITEM_ORD > :vo.bltItemOrd) OR BLT_ITEM_GRP_CD < :vo.bltItemGrpCd)
AND DEL_YN LIKE '%' || :vo.delYn || '%'
ORDER BY BLT_ITEM_GRP_CD DESC, BLT_ITEM_ORD ASC)
WHERE ROWNUM <=1
4. JSP에서 공백 출력
를 사용하여 출력할 수 있다.
이 글은 스프링노트에서 작성되었습니다.
'Computer Life > Programming Life' 카테고리의 다른 글
Flex DB연동방식 종류... (0) | 2008.11.19 |
---|---|
Toad에서 Oracle Procedure 호출하는 방법 (0) | 2008.11.19 |
Flex 개발툴 설치 관련 (0) | 2008.11.18 |
[쿼리] select해서 insert하는 경우에 select 한 값이 없는 경우... null로 처리되는 경우 (0) | 2008.10.13 |
자바에서 정규식으로 html 태그 제거 (1) | 2008.05.30 |