출처 :https://velog.io/@zawook/Mybatis-Mapper-if
isEquas(str) 문자열 비교
<if test="userId == 'hong'"> 이렇게 써도 될것 같지만 에러가 난다.
Mybatisl에서는 변수가 자바객체처럼 사용되므로 자바에서 사용되는 문자열 비교 메소드를 이용하면 된다.
싱글쿼테이션과 더블쿼테이션을 잘 보자. ""는 문자열이고 ''는 문자이다.
equals로 비교할 때에는 ''으로 처리할 경우 비교대상 문자가 한글자이면 비교되지 않지만 두글자 이상이면 싱글쿼테이션으로도 비교가 가능하다. 문자열은 ""로 처리하는게 나을듯 싶다.
참고로 equalsIgnoreCase는 대소문자 비교뿐만 아니라 ''만으로도 문자열 비교가 된다. 단 비교할 문자를 먼저 쓴 경우에 당연히 에러.
<if test='userId.equals("hong")'> (O)
<if test='userId == "hong"'> (O)
<if test="userId == 'hong'"> (Error)
<if tset='userId == "h"'> (O)
<if test="'hong'.equals(userId)"> (O)
<if test="'h'.equals(userId)'> (X)
<if test="userId.equals('h')"> (X)
<if test="userId == 'hong'.toString()> (O)
<if test="userId eq 'hong'.toString()> (O)
<if test="userId.equalsIgnoreCase('hong')"> (O)
<if test="userId.equalsIgnoreCase('h')"> (O)
<if test="'h'.equalsIgnoreCase(userId)"> (Error)