Java & Kotlin
mybatis mapper 사용기
필자A
2021. 7. 31. 12:49
정확하지 않습니다.
🐲
mapper
1.namespace를 직접 입력하여 사용
2.mapperInterface를 통해 사용
namespace | interface | |
장점 | 간단하게 사용 | mapper를 열어보지않아도 알아볼수 있다. |
단점 | 오타로 인해 에러로 빠질수 있다. mapper를 직접 열어서 찾아봐야함. |
namespace에 비해 상대적 더 설정할게 많다. |
모든 마이바티스 애플리케이션은 SqlSessionFactory 인스턴스를 사용한다.
sqlSessionFactory
이제 이 팩토리로 sqlSession을 만들어
쿼리를 날려 사용하면 된다.
ex)
builder -> factory -> sqlSession -> 쿼리 실행
sqlSession은 스프링에서 singletone으로
사용되고 사용할 때 open 해주고 닫아줄 때 close 해줘야 한다.
입출력 기능을 사용할 때처럼 리소스를 많이
잡아먹나 보다.
아니면 스레드 관련 문제 때문인가..?
spring 대신 boot를 사용하여
프로젝트를 진행하였다.
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
프로젝트에 위 의존성을 추가하면
boot에서는 따로 팩토리 만들고 빈으로 안 만들어도
properties에 매퍼를 구현한 xml위치만 잡아주었는데
알아서 다 해준 듯하다.
*
다른 게시글을 보니 mybatis는 설정이 properties에서
할 수 없다고 나온다.
그곳에서는 boot-mybatis가 아니라
sprig-mybatis를 의존성에 넣기도 하였고
4년이나 지난 글이다.
제일 고난이었던 것은 문법적인 에러였다.
sqlSession을 사용했을 때는 철자 하나하나 때문에 시간이
많이 사용되었는데 mapperInterface를 사용하니
컴파일 이전에 에러를 볼 수 있어서
잉여시간이 많이 줄었다.
JPA를 먼저 사용하였는데
위 방식을 사용하다 보니 소중함을 많이 깨달았다.
반응형