본문 바로가기

Server Oriented/Java & JSP

MyBatis 에서 #{} 를 getter 가 아닌 것으로 인식하게 하려면..?

MyBatis 에서 getter 값으로 #{getter} 형식를 사용하는데..

(참고로 ${...} 는 statement, #{...} 는 PreparedStatement 에 대응)

알림톡 본문에 사용하는 문장에 '#{회원명}' 과 같이 이용해야 한다면...?

 

<![CDATA[ ... ]]> 를 이용해 보시겠다구요..? no no no.. getter 오류 납니다.

 

그러면, 어떻게 할 것이냐..?

DTO 에 static String 으로 변수값에 "#{회원명}" 과 같이 사용하면 됩니다. ^^;

 

이쯤되면, 알림톡이 얄밉다. MyBatis 이용자에게 엿 먹이는...


이를테면...

 

DTO 에는..

private static String dto1 = "#{회원명}";

private static String dto2 = "#{일자}";

 

mapper 에는...

<insert id="아이디" parameterType="DTO">

insert into Table알림톡(

           ...

          ,message

          ,...

          )

select ...

          ,replace(replace(a.talk_content

            , #{dto1}, b.name),

            , #{dto2}, b.date)

          ,...

  from tableA a, tableB b

 where a.key1 = b.key1

;

</insert>