MyBatis
-
[MyBatis] CDATA(<![CDATA[...]]>), HTML 특수문자 코드MyBatis 2021. 4. 4. 16:49
MyBatis에서 쿼리문을 작성할 때 '', '&'같은 특수문자를 사용하면 문자열이 아닌 XML 태그로 인식하여 오류가 발생합니다. 이런 경우 특수문자를 XML 태그가 아닌 문자열로 인식하게 하기 위해 CDATA()를 사용하거나 HTML 특수문자 코드를 사용합니다. CDATA() 를 사용하는 경우 B ]]> SELECT * FROM DUAL WHERE A ]]> B CDATA() 주의할 점 사용하는 경우 동적 쿼리문을 사용할 수 없기 때문에 쿼리문 전체가 아닌 특수문자가 포함된 코드에만 사용해야 합니다. HTML 특수문자 코드를 사용하는 경우 SELECT * FROM DUAL WHERE A > B HTML 특수문자 코드 > & & MyBatis 가이드 - mybatis.org/mybatis-3/ko/in..
-
[MyBatis] if문 사용 시 ''(작은따옴표) 오류MyBatis 2021. 4. 4. 16:15
MyBatis에서 if문에서 ''(작은따옴표)를 사용하여 특정한 값을 비교할 때 문자열의 길이가 한글자인 경우 char형으로 인식하여 java.lang.NumberFormatException 발생할 수 있습니다. 이런 경우에는 ''(작은따옴표)를 ""(큰따옴표)로 변경하여 특정한 값을 비교하도록 해야 합니다. 파리미터가 NULL이 아니고, "Y"과 동일한 문자열인지 확인 MyBatis 가이드 - mybatis.org/mybatis-3/ko/index.html
-
[MyBatis] #{} 와 ${} 차이점MyBatis 2021. 4. 4. 11:56
MyBatis에서 쿼리문에 파라미터 값을 설정하기 위해 #{}과 ${}를 사용하는데, 다음과 같이 차이가 있습니다. #{} 이란? 1.#{} 사용 시 PreparedStatement(동적) 생성합니다. 2.PreparedStatement 매개 변수 값에 문자열을 직접 삽입하지 않고, 물음표(?)에 파라미터가 바인딩되어 수행됩니다. 3.문자열에 따옴표('')가 붙습니다. #{}을 사용할 경우 실행 방식 1.MyBatis Mapper에서 작성된 쿼리 SELECT * FROM USER WHERE ID = #{ID} 2.데이터베이스에 전달하는 쿼리 SELECT * FROM USER WHERE ID = ? 3.실제 수행하는 쿼리 SELECT * FROM USER WHERE ID = 'ADMIN' ${} 이란? 1..