건강하게돈벌자
20
2021-05-04 19:04:08 작성 2021-05-04 19:04:36 수정됨
1
102

controller에서 sql문을 부분적으로 만들고 ibatis로 넘겨주는 방식이 어떤면에서 유용한가요?


회사에서 크게 두가지 방식을 섞어서 사용하고 있습니다.

1. request의 parameter를 map으로 바꿔서 service.process(map); 이렇게 하는 방식이 있고, 

  (간혹 vo를 이용하기도 합니다.)

2. 두번째 방식으로는 request.getParameter()의 값을 분석해서

String where = new String() 이렇게 해두고... 아래에서 sql을 직접 부분 조립한다음 넘겨주는 방식입니다.

where = " AND a.goodsno = b.goosno" 이런식으로 조건을 만든다음에

string을 통째로 넘겨줘서 ibatis 에서 $where$ 등으로 처리합니다.

문제는 sql을 수정하려고 할때마다 controller부분을 봐야해서 수정하기가 까다롭게 느껴집니다.

이게 어떤면에서 유용한 건지 알고싶습니다.

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

select * from goods g where g.name = '상품1' 을 하려고할 때...

controller에서 String where = "g.name = "상품1" 조립하고..

service.select(where) 하면...

select * from goods g $where$ 이런식으로 해뒀습니다.


0
  • 답변 1

  • 나도아빠다
    2k
    2021-05-04 21:07:30

    상황 따라 where문이 너무 다양할 경우 ibatis 동적 쿼리가 너무 복잡해져서 쿨하게 기본 select만 남기고 저렇게 작성할 때가 있습니다.


    물론 저렇게 만들게 아니라 파라미터 성향 따라 구분하여 동적 쿼리를 ibatis 쿼리를 여러개 만들기도 합니다만..

    mybatis 처럼 부분 쿼리를 따로 설정할 수 없어서 저런 방법을 공공연히 썼었습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.