글
난 왜 지금까지.. dml에 대해 매개변수로 do를 전달햇을때.. pk등 키값을 제대로 처리를 안햇었을까?
예를 들어.. xxDAO클래스의 int update(DO do) 메서드라면,.. (insert도 포함)
지금까지 내경운.. sql 쿼리를 "update 테이블 이름 set 칼럼1 = do.칼럼1, 칼럼2 = do.칼럼2"
요렇게 했었는데.. 난 바보였다.. 요런 쿼리면.. 모든 로우에 대해 해당 값으로 덮어쓰게 된다.
이런 메서드는 updateAll() 이런 식으로 명명했어야 했다.
update() 라면..
update 테이블 이름 set 칼럼1(pk아님) = do.칼럼1, 칼럼2 = do.칼럼2 ... where 테이블 칼럼.pk = do.pk
요렇게 했어야 했다...
난 뭘한건가?????????????????????
오버 로딩으로 중복 코드 줄이겠다는 마음만 앞서서.. (쿼리 구문 ? 에 입력값들 매핑 하는 로직)
update, 와 select를 묶어버리고;; (이것도 위의 삽질처럼.. updateAll과 update 구분못함.. 물론 delete , deleteAll 도 구분 못함)
insert와 delete를 묶었을거다;;
난 진짜 바보다;;;
db의 테이블.. 그리고 pk.. where 조건절과 서비스 메서드의 조건(selectById...) 구분을 못했었다.
dml이 왜 dml이냐!!!!! dql 왜 dql이냐??? 왜 두가지 문장이 구분되는 것인지.. 좀 깨닫자!!!!!!
select란 dql은 ... 전체 집합에서 조건을 찾는 문법이다.;;; 아.. 그래도 늦게나마 깨달았다;;;
'프로그래밍 > 삽질' 카테고리의 다른 글
나를 삽질케한 것.. new PrintWriter(System.out) (0) | 2014.01.01 |
---|---|
Exception e.printStrackTrace() 를 통해 오류 위치 추적 방법 (0) | 2014.01.01 |
map 클래스 자만한 결과 (0) | 2014.01.01 |
툴.. 대충 만든다고 버전 관리 안했더니.. (0) | 2014.01.01 |
RECENT COMMENT