7533ymh
117
2021-05-06 20:59:41 작성 2021-05-06 21:02:02 수정됨
2
166

스프링부트 mybatis 다중 db 연결 질문입니다.


안녕하세요. 졸업작품 진행중인 4학년 대학생입니다. 

현재 스프링부트 mybatis mysql로 진행중인데 다른 서버의 db를 연결해야할 상황이 와서 질문드립니다. 

현재 application.properties 파일에 db 정보를 입력해놓고 mapper 인터페이스에 @mapper 어노테이션으로 선언하고 sql 문 같은 경우 @Insert와 같은 어노테이션으로 진행하고 있는데 이런 상황에서 다중db을 연결할 시 다중db를 사용하는 mapper의 경우 어노테이션 말고 xml으로 sql문을 진행하는 방법밖에 없나요? 

의견 부탁드립니다!

0
  • 답변 2

  • WRYYYYYYYYYY
    368
    2021-05-06 21:28:56

    하나의 Mapper 클래스에서 다중 DB에 접근하는 것은 불가능하고, 각각 DB에 맞는 Mapper클래스를 별도로 생성해주셔야 합니다.


    말씀하시는 문제는 가능합니다. SqlSessionFactory 같은 걸 주입해서 id로 접근하는 방법의 경우 의존성을 다르게 주입 받으면 되지만,

    @Mapper 어노테이션을 붙이는 방법으로 여러 디비를 사용하시고 싶으신거 같은데요. 결론은 가능합니다. 아래 링크를 확인해보시겠어요? 어노테이션을 통해 커넥션을 구분해주면 가능합니다.

    https://aljjabaegi.tistory.com/440

  • 로를리앙
    261
    2021-05-07 10:45:26

    application-Context에서 sqlSessionFactory 를 두개 이상 만들어놔야 할거에요 

  • 로그인을 하시면 답변을 등록할 수 있습니다.