UNICORN3
UNICORN3 질문&답변UNICORN3 테스트게시판UNICORN3 FAQUNICORN3 정식등록 문의
Unicorn 설치 및 FAQ
Unicorn 설치 및 FAQ
Unicorn 설치안내,팁 및 FAQ 게시판 입니다
Unicorn3에 테이블 컬럼 추가하기
GoodBug http://www.jakartaproject.com
이미지 슬라이더 보기

Unicorn3에 테이블 컬럼 추가하기

 

 

1. sql-defs.xml 에 추가 컬럼에 대해 기술합니다

먼저 http://www.jakartaproject.com/article/boardfaq/119191128019726 를 참고하여 sql-defs.xml 의 구조를 파악합니다

그 후 추가하고자 하는 테이블에 대해 쿼리를 수정합니다

 

2. VO, FORM 클래스들을 수정합니다

필드를 추가한 쿼리에 해당하는 VO를 수정합니다

VO 클래스의 멤버변수와 그에대한 setter, getter를 추가합니다

FORM 클래스들도 마찬가지 입니다

VO클래스는 데이터베이스에서 값을 가져와 저장해 놓는 클래스이고

FORM 클래스는 사용자가 웹페이지에서 입력한 값을 저장해 놓는 클래스입니다

 

3. DAO 클래스들을 수정합니다

? 추가로 인한 쿼리에 대해 코딩이 필요합니다

 

4. JSP를 수정합니다

추가한 컬럼을 보여주기 위한 JSP의 내용들을 수정합니다

 

 

필드추가예제

Oracle의 Board_t 테이블에 goodbug 컬럼을 추가하겠습니다

 

① sql-defs.xml

  Unicorn은 MySQL과 Oracle 을 지원함으로 각 데이터베이스에 해당하는 쿼리를 수정하셔야 합니다

 오라클 데이터베이스이므로 <database> 태그가 oracle인곳의 Board_t 영역을 수정하셔야 합니다

 오라클 데이터베이스 쿼리들은 sql-defs.xml 의 2819라인부터 기술되어 있습니다

 

 4511라인의 <create_board> 문에 goodbug컬럼을 추가합니다

 

<create_board>

 CREATE board_t (

    boardNo            VARCHAR2(15) NOT NULL,
    boardId            VARCHAR2(32) NOT NULL,
    boardIdx           NUMBER(18) DEFAULT 0,
    boardRef           NUMBER(8) DEFAULT 0,
    boardDep           NUMBER(8) DEFAULT 0,

    ...

    goodbug            VARCHAR2(32)

)

</create_board>

index가 필요하다면 <index_board_07>CREATE INDEX ... </index_board_07> 로 추가를 해줍니다

위의 CREATE와 INDEX 태그는 재설치할 경우 필요하기 때문에 기술해 놓는 것입니다

 

일단 컬럼이 추가되었기 때문에 INSERT 나 UPDATE 문장이 수정되어야 합니다

board_t에 대한 모든 INSERT문장이 수정되어야 합니다

 

<insert_board>
   INSERT INTO board_t (boardNo, boardId, boardIdx, boardRef, boardDep, categoryId, boardIcon, userId, userPw, userNick,
         userIcon, userLevel, userIp, userEmail, userHomepage, userNation, boardTitle, boardContent,
         boardRead_cnt, boardMemo_cnt, boardFile_cnt, boardTag_cnt, boardRate_sum, boardRate_cnt, boardStar_sum,
         boardStar_cnt, boardPoll_cnt, boardLeaf_cnt, boardDelete_fg, boardBest_fg,
         boardTop_fg, boardSecret_fg, boardEdit_fg, boardPollFrom_time, boardPollTo_time, tagName, tagId, thumbnailName, orgUserId,
         boardPoint, boardTimestamp, boardRegister_dt, boardModify_dt, googbug)
   VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,empty_clob(),0,0,?,?,0,0,0,0,?,0,'N','N',?,?,?,?,?,?,?,?,?,?,?,?,?,?)
</insert_board>
<insert_board_01>

   INSERT INTO board_t (boardNo, boardId, boardIdx, boardRef, boardDep, categoryId, boardIcon, userId, userPw, userNick,
         userIcon, userLevel, userIp, userEmail, userHomepage, userNation, boardTitle, boardContent,
         boardRead_cnt, boardMemo_cnt, boardFile_cnt, boardTag_cnt, boardRate_sum, boardRate_cnt, boardStar_sum,
         boardStar_cnt, boardPoll_cnt, boardLeaf_cnt, boardDelete_fg, boardBest_fg,
         boardTop_fg, boardSecret_fg, boardEdit_fg, boardPollFrom_time, boardPollTo_time, tagName, tagId, thumbnailName, orgUserId,
         boardPoint, boardTimestamp, boardRegister_dt, boardModify_dt, goodbug)
   SELECT ?, ?, ?, boardRef, boardDep, null, boardIcon, userId, userPw, userNick,
       userIcon, userLevel, userIp, userEmail, userHomepage, userNation, boardTitle, boardContent,
       boardRead_cnt, boardMemo_cnt, boardFile_cnt, boardTag_cnt, boardRate_sum, boardRate_cnt, boardStar_sum,
       boardStar_cnt, boardPoll_cnt, boardLeaf_cnt, boardDelete_fg, boardBest_fg,
       boardTop_fg, boardSecret_fg, boardEdit_fg, boardPollFrom_time, boardPollTo_time, tagName, tagId, thumbnailName, orgUserId,
       boardPoint, boardTimestamp, boardRegister_dt, boardModify_dt, goodbug
   FROM board_t
   WHERE boardNo = ?
</insert_board_01>

<insert_board>태그와 <insert_board_01> 태그에는 goodbug라는 컬럼을 추가하였고,

이에대한 ? 를 추가하였습니다

? 는 <insert_board>에만 추가되었다는 점은 DAO에서 이 값을 코딩해주어야 함을 의미합니다

 

이처럼 추가 컬럼에 대한 INSERT, UPDATE, SELECT 태그에 대해 해당 쿼리들을 수정해 주세요

INSERT나 UPDATE처럼 ? 가 들어가는 부분들은 DAO에서 코딩이 추가로 필요합니다

 

② VO, FORM 클래스 수정

board_t에 대한 VO클래스는 com.jakartaproject.board.vo.BoardVO.java 입니다

추가된 컬럼에 대해 멤버변수 및 getter, setter를 추가합니다

 

public class BoardVO extends BaseVO implements Cloneable {

 private boolean removeTag;
 private boolean selected;
 private boolean editable;

 ...

 private String goodbug;

 

 ...

 

 public void setGoodbug(String goodbug) {

    this.goodbug = goodbug;

 }

 public String getGoodbug() {

    return goodbug;

 }

 ...

}

만약 goodbug 컬럼의 값을 사용자가 웹페이지에서 입력받는 값이라면 Form 클래스도 VO와 동일하게 추가해 줍니다

com.jakartaproject.board.form.BoardForm.java 를 수정합니다

 

public class BoardForm extends BaseActionForm {
 
 private int boardFile_cnt;
 private int boardPoint;
 private long ipBandWidth;
 private String boardNo;
 private String boardId;
 private String categoryId;

 ...

 private String goodbug;

 

 ...

 

 public void setGoodbug(String goodbug) {

    this.goodbug = goodbug;

 }

 public String getGoodbug() {

    return goodbug;

 }

 ...

}

 

 

③ DAO 클래스를 수정합니다

INSERT 구문에서 ? 가 추가되었음으로 com.jakartaproject.board.dao.BoardOracleDAO.java 를 수정하여야 합니다

DB서버가 오라클임으로 BoardMySqlDAO.java가 아닌 BoardOracleDAO.java를 수정하면 됩니다

<insert_board> 태그에 ?가 추가되었음으로 "insert_board"로 검색해 봅니다

942라인에 query.update("insert_board", params.toArray()); 가 검색되었습니다

params 변수가 insert할 값들을 포함하고 있음으로 이 값 마지막 부분에(컬럼을 제일 마지막에 넣었음으로) goodbug에 대한 값을 추가해 줍니다

 

   params.add(new Integer(("C".equals(boardTypeVO.getBoardType_cd())? boardForm.getBoardPoint():0)));
   params.add(DateUtils.getDate(new Date(), "yyyyMMddHHmmss"));
   params.add(currentTime);
   params.add(currentTime);

   params.add(boardForm.getGoodbug());
   query.update("insert_board", params.toArray());
   
   Clob clob = query.getClob("select_board_100", boardNo);
   writeClob(clob, boardForm.getBoardContent());

 

④ JSP를 수정합니다

이 추가된 컬럼의 값이 글 상세조회 화면에서 뿌려진다면 /jsp/board/skin/default/board_read.jsp 를 수정합니다

 board_t의 VO가 ArrayList 형태의 타입이기 때문에 아래와 같이 적절한 위치에 아래 태그를 추가시켜 주면 됩니다

...

<tr>

 <td><bean:write name="list" property="goodbug"/></td>

</tr>

...

 

생각보다 복잡하네요!

기본적으로 컬럼을 추가하기 위해서는 어느정도 소스파악을 하셔야 합니다 ^^

 

2011-08-22 17:22:43
211.189.124.***

 

좋은생각 ^^

0점 (1명)
덧글 0개 | 태그 0개 | 관련글보기
태그입력
쉽표(,)구분으로 한번에 여러 태그를 입력할수 있습니다
이름 비밀번호
Unicorn 설치 및 FAQ
Unicorn 설치안내,팁 및 FAQ 게시판 입니다
! 카테고리 번호 제목 글쓴이 일자 조회
FAQ 도로명 2014 도로명 전면 시행에 대한 Unicorn3 가이드 1 1 GoodBug 2014-01-01 3,581
FAQ 라이센스 Unicorn 라이센스 설치 안내입니다 1 GoodBug 2010-01-31 7,317
FAQ Unicorn3 Unicorn3 소개 1 1 GoodBug 2010-01-05 20,088
설치 setup Unicorn3 설치 가이드 7 3 GoodBug 2006-09-07 57,448
FAQ 99 기능 문의 tigermale 2015-06-22 911
설치 98 까페24 호스팅에서 FTP 기초문의입니다. 대기업 2013-04-22 1,961
FAQ 97 jdk1.5 JDK 1.5 환경 1 GoodBug 2012-03-21 2,597
FAQ 96 invalid filename 파일 업로드 시 멈춤현상이 발생한 경우 2 GoodBug 2012-03-07 3,437
설치 95 jdk1.4 JDK 1.4 환경 1 GoodBug 2012-02-27 2,496
설치 94 업그레이드 Unicorn v3.23 에서 Unicorn v3.40 으로 업그레이드 시 에러날때 1 GoodBug 2010-02-02 5,114
FAQ 93 Unicorn3 Unicorn3 히스토리 1 GoodBug 2010-01-05 5,629
FAQ 92 browser Unicorn3 V3.3 제약 사항 및 브라우져 지원 현황 1 GoodBug 2009-12-31 4,678
TIP 91 unicorn Unicorn3 주요 UI 기능 2 GoodBug 2009-12-30 15,871
TIP 90 메인화면에 설문조사 달기~! GoodBug 2008-06-10 8,490
FAQ 89 태그클라우드 메인화면(최근글목록,태그크라우드) 및 미니게시판(글5개씩) 만들기 (v3.20 이상) 1 1 GoodBug 2008-04-28 12,799
설치 88 Unicorn 파일서버 설정 및 파일 동기화 기능 설정 방법 3 GoodBug 2008-04-04 9,582
TIP 87 Unicorn3 v3.20 전체 기능 소개 1 GoodBug 2008-04-04 10,122
설치 86 MySQL 서버에 설치시 캐릭터셋 설정 부분에서 에러가 발생한다면 1 GoodBug 2008-04-04 9,354
TIP 85 로그인 다른사이트에서 Unicorn3로 로그인 하기 1 1 GoodBug 2008-02-29 7,698
TIP Unicorn3에 테이블 컬럼 추가하기 GoodBug 2007-10-11 8,327
copyright 2005-2017 by Unicorn