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를 먼저 사용하였는데

위 방식을 사용하다 보니 소중함을 많이 깨달았다.

 

 

반응형