준형,유진,소윤이네 홈페이지
| Home | 자유게시판 | 최근소식 | 추억속으로 | 준형엄마 수다방 | 가족앨범 | 자료실 | 준형아빠 공부방 | 방명록

 가족
 친구 홈페이지 Link

날 씨


준형아빠 공부방

0
 17   2   1
  View Articles

Name  
   준형아빠 
Subject  
   SQL Tip 및 작성시 유의사항...
음...
Update문의 경우 업데이트 할 컬럼이 다름에 따라...
같은 테이블에 대한 Update문을 여러개 작성해야 하는 경우가 있습니다...
그럴때.. 아래와 같이 써보세요.. ^^
    UPDATE
        BRM_BIS_MAIN
    SET
        BISNM = DECODE(:BISNM, NULL, BISNM, :BISNM),
        PARENTID = DECODE(:PARENTID, NULL, PARENTID, :PARENTID),
        BISLEVEL = DECODE(:BISLEVEL, NULL, BISLEVEL, :BISLEVEL),
        BISORDER = DECODE(:BISORDER, NULL, BISORDER, :BISORDER),
        BISTYPE = DECODE(:BISTYPE, NULL, BISTYPE, :BISTYPE),
        DELYN = DECODE(:DELYN, NULL, DELYN, :DELYN),
        UPDT = TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')
    WHERE
        BISID = :BISID;
업데이트가 필요한 컬럼만 값을 세팅해주면... 나머지는 원래 값으로 들어갑니다...
쿼리는... 적을수록 좋겠죠 ?
뭐... 시름 말고 -.-;;

=======================================================================

SQL 작성시...
예약어, 컬럼명, 테이블명, 변수명에 관계없이..
모두 대문자로 작성함을 원칙으로 합니다...
SELECT시 *는 사용할 수 없으며, INSERT시 컬럼명을 반드시 명시해야 합니다.
그리고 바인더에서 바인딩할 변수가 2개라고 해서 바인더에 변수를 2번 세팅할 필요는 없습니다...
한번만 세팅하면 2개 이상의 변수 모두 바인딩됩니다.
순서는 관계없는거 아시져???
또 마지막에 세미콜론(;) 넣는거 잊지마세요 ^^

전에 두어번 언급된 내용인데...
BaseDAO에 executeQuery라는 메쏘드가 있습니다.
DAO에서 대부분 super.executeQuery해서 많이 쓰시는걸로 알고 있습니다.
그런데 executeQuery는 내부적으로 ResultSet의 Metadata를 이용하여 내용을 모두 VO에
담아서 반환하는 내용으로 되어 있습니다.
즉 한번에 select해오는 row수가 많을 경우 성능상의 문제가 있을 수 있다는 얘기입니다.
현재 그런 화면이 있을지 모르겠지만...
한번에 select해오는 row수가 많을 경우.. 뭐 대략 2~300 row이상이면,
BaseDAO.executeQuery를 쓰지말고 BaseDAO의 내용을 참조하여
직접 ResultSet을 얻어와 사용하시길 바랍니다.

말나온김에... 한가지 더...
command, facade, dao 등 각 Layer는 각자의 특성과 할일이 다르니까 나눠놓은거겠져...
dao에 로직을 몽창 때려 넣는다던지 하는 모양은 지양되어야 할것 같습니다...
그렇게 한다면, command부터 dao까지 몽창 하나로 만드는것과 구조상 별반 다를게 없다는 얘기입니다.
DAO의 경우... select의 경우야 어쩔수 없다지만,
특수한 경우를 제외하고는 insert, update, delete 문은 테이블 1개당 1개씩만 나오는게 정상일것입니다..
또 1개의 메쏘드 안에서 여러개의 테이블을 수정/삭제하는 모양은 생길수 없을 것입니다...

이미 문서나 구두로 여러차례 언급한 내용이고 다들 알아서 잘 하고 계시겠지만... 잘 이해를 못하신 분이 계신듯 하여... -.-;;


날이 많이 선선해졌군요... 그럼 수고 !


Name
Memo
Password
 
     
Prev
   오라클 DB에서 제목 자르기

준형아빠
Next
   Tip] QUERY - 자신의 경로 얻어오기(START WITH 사용시) [3]

준형아빠


Copyright 1999-2021 Zeroboard / skin by Zetyx
   Copyright ⓒ 2003.5.1 Kim,sun-hak. All rights reserved. h9841150@empal.com