Maenya's Techlog

[20210223 JAVA] myBatis와 iBatis의 차이 본문

프로그래밍/Java | Spring

[20210223 JAVA] myBatis와 iBatis의 차이

ming235 2021. 2. 23. 21:32

나는 실무에서 myBatis 사용밖에 안해봤는데 채용공고를 보면 가끔씩 iBatis를 요구하기도 한다.

그래서 이 부분에 대해 한 번 짚고 넘어 가야겠다고 생각했다.

둘의 성질이 크게 다른건 아니고  myBatis가 iBatis의 진화형이랄까?

 

이 둘은 일단 JDBC코드를 편하게 사용하려고 쓰는데, SQL과 프로그래밍코드가 분리되어서 매우 편리하다.

실제로 DB에 넘길 매개변수를 #{param} 이런 식으로 전달할 수 있어서 결과 추출이 매우 쉬워진다.

 

사용법은 거의 흡사하며 myBatis는 JDK 버전 1.5이상에서만 사용가능하다.

sqlMapper.xml 내부구조, pom.xml 의존성 추가 방식, nameSpace 등 깊게 들어가면 둘의 차이가 이것저것있는데, 

다 필요없고 실무에서 myBatis, iBatis 이런 Batis들을 사용하는 가장 큰 이유인 Dynamic Query를 사용할 때 차이를 알아 보는게 중요할 것이다.

 

Dynamic Query는 말그대로 쿼리 내에서 상황에 따라 분기처리를 쉽게 해주어 SQL자체를 동적으로 만드는 것인데