-- #{var} 라고 가정
<if test="var != null && var != '' ">
</if>

논리연산자 동작 방식을 알고 있으면 소소하게 도움되는게 있다.

예를 들어 위 null 체크에서  and 연산을 하고 있다.

and 연산은 진리표를 보면 둘 다 참이여야 참이된다.

즉, 하나라도 거짓이면 참이 될 수 없다.

따라서 앞에서 거짓이 나오면, 뒤에 연산은 이루어지지 않는다 (성능)

만약 var != ''  앞에 왔고, null이라면 익셉션이 발생한다.

 

 

역으로 or연산자는 하나라도 true이면 전부 true이므로, 

성능상에 이점을 가져가기 위해서는 true일 확률이 높은 것을 앞에 배치하는 것이 좋다.

 

 

 

+ Recent posts