<aside>
💡 iBatis와 MyBatis의 차이
Apache에서 진행하던 프로젝트가 Google로 이관되며 프로젝트 명이 변경되었습니다.
상세한 차이점은 링크에서 확인 가능합니다
</aside>
MyBatis란 무엇이며 왜 필요한가?
iBatis(아이바티스)란?
기존의 SQL 개발
- 로우 레벨 API를 이용해 코딩
- JDBC API를 직접 이용해 코딩
- 설정의 복잡함 + 반복
- 소스코드 내에 문자열로 SQL 쿼리 포함
MyBatis 아키텍처
MyBatis의 동작 원리
MyBatis 개발 트러블 슈팅
Mapper.java
- @Mapper를 반드시 적자
- 적지 않는 경우 Parameter 0 of constructor in ~~~ required a bean of type 'com.example.myitemstock.mapper.AnimalMapper' that could not be found. 발생
Mapper.sql
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">를 반드시 적자
- 적지 않으면 Document root element "mapper", must match DOCTYPE root "null" 발생
- id를 메소드 이름으로 정확히 적자
- id와 메소드 이름이 일치하지 않으면 Invalid bound statement (not found): com.example.myitemstock.mapper.AnimalMapper.~~~
- namespace에 Mapper 클래스 패키지를 정확히 적자
- DataSource또는 Dialect를 명시할 수 있다
- 명시하지 않으면 IntelliJ등에서는 Warning을 발생시킨다
한글 치환변수
ibatis 쿼리 동작 원리 및 주의점 (변수)