mybatis 3

[Mybatis][Mysql] <[![CDATA[…]]> 사용법/CDATA 꼭 써야하나?/XML Parser 문자열인식

백엔드 프로젝트를 하면 쿼리를 작성하고 Back logic을 작성할 일이 많아지는데 그때, SQL Mapper로 MyBatis를 쓰면서 mapper.xml 파일에 라고 쓰인 것을 자주 보았을 것이다. [개발하면서 뜬금없는 호기심 1탄] Mybatis 모든 쿼리문에 꼭 CDATA를 사용해야할까? CDATA 란? 쿼리를 작성할 때 '', '&'를 사용해야 하는 경우가 생기는데 xml에서 그냥 사용하면 mapper에 작성된 , 와 같은 태그로 인식한다. 그렇다면 mapper.xml에 작성된 태그 괄호와 달리 이 등호는 '쿼리에 필요한 코드'라고 알려줘야 한다. 그때 사용하는 것이 이다. 사용법 XML에서 파싱 할 대상으로 인식하지 하지 않도록 그 구역을 지정해 주는 것이 CDATA이다. XML로 파싱을 원하지..

개발.log/database 2023.09.20

[Mybatis][iBatis] org.apache.ibatis.binding.BindingException 에러해결 - 다중 매개변수 객체(DTO, String)넘기기

org.mybatis.spring.MyBatisSystemException : nested exception is ... 개발하면서 분명 mybatis parameter Binding 오류가 난 적이 없었는데;;; 오랜만에 구글링하여 공백이 있는지.. 마감태그는 잘 닫혀있는지,, 일반적으로 확인할 부분들을 한참 확인하고 나서도 해결되지 않았다... 그러다가 아래 사실을 간과했다는 것을 깨닫고, 겸허한 마음으로 다시 배우고자 한다. MyBatis와 iBatis는 두 가지 다른 버전의 라이브러리이며, 각각의 라이브러리 버전에 따라 동작 방식이 조금 다를 수 있습니다. 또한 데이터 바인딩에 대한 규칙 및 기본 설정도 이 두 라이브러리 간에 다를 수 있다. 아래 3.0.0 기준에서는 별도의 어노테이션을 설정하지..

[Mybatis] XML태그 <choose>, <when>, <otherwise>로 동적쿼리 Dynamic SQL 구현하기

자바 인터페이스 Mapper를 통해 쿼리를 구현할 때, 파라미터를 그대로 바인딩해서 사용해야 더 효율적인 쿼리를 구현할 수 있다. 왜냐면... 수정할 때 하나 바꾸면 다 바뀌는 게 좋잖아요? 개발자는... 같은 코드를 반복하지 않지 :) 구조 및 사용법 쿼리1 쿼리2 쿼리3 쿼리4 쿼리5 태그는 태그와 함께 사용되며, 조건을 여러 번 작성할 수 있다. 실행 시 태그의 조건식을 순서대로 확인하며 쿼리문을 실행하게 된다. 만약 태그의 조건 식중 true 반환한 것이 없다면 태그 내에 작성된 쿼리문이 실행된다. 태그는 생략 가능하다. 적용 예제 XML AND TISTORY_CODE = '*' AND TISTORY_CODE = '1' AND TISTORY_CODE = '0' ORDER BY BASE_YMD My..