-- #{var} 라고 가정
<if test="var != null && var != '' ">
</if>
논리연산자 동작 방식을 알고 있으면 소소하게 도움되는게 있다.
예를 들어 위 null 체크에서 and 연산을 하고 있다.
and 연산은 진리표를 보면 둘 다 참이여야 참이된다.
즉, 하나라도 거짓이면 참이 될 수 없다.
따라서 앞에서 거짓이 나오면, 뒤에 연산은 이루어지지 않는다 (성능)
만약 var != '' 앞에 왔고, null이라면 익셉션이 발생한다.
역으로 or연산자는 하나라도 true이면 전부 true이므로,
성능상에 이점을 가져가기 위해서는 true일 확률이 높은 것을 앞에 배치하는 것이 좋다.
'개발 > 오라클 SQL' 카테고리의 다른 글
문자열 다루기 핵심 TRANSLATE (1) | 2022.11.25 |
---|---|
IN, NOT IN, EXISTS, NOT EXISTS (0) | 2022.11.10 |
정규식을 통한 Mybatis Sql Injection 처리 (0) | 2022.06.29 |
바인드 변수 두 개를 받아 그 사이 달력 찍기 (0) | 2022.06.02 |
달력 만드는 과정 (0) | 2022.06.02 |