MyBatis 및 Mapper 경로 설정

2023. 1. 3. 15:55Spring 설정관련

최종

 

src.main.java.yun.study.

 

controller

BoardController

@GetMapping ("/board")
public String boardTest(Model model){


     model.addAttribute("cnt",service.boardCount());
   // model.addAttribute("test",service.boardList());
    return "boards/board";
}

service

BoardService

@Service
@RequiredArgsConstructor
public class BoardService {

    private final BoardMapper boardMapper;

    public int boardCount(){return boardMapper.boardCount();}

    //public List<BoardDto> boardList(){return boardMapper.getList();}

}

 

mapper

BordMapper

@Mapper
public interface BoardMapper {

     int boardCount();

     //List<BoardDto> getList();
}

src.main.resources.mapper

BoardMapper.xml

 

<mapper namespace="yun.study.mapper.BoardMapper">

    <select id="boardCount" resultType="int">
        SELECT count(*) AS cnt FROM board
    </select>

</mapper>

 

 

중요한건

<mapper namespace="yun.study.mapper.BoardMapper">

namespace부분은 boarderMapper 의 위치를 보는듯 하다. xml 파일 위치가 아니다!

 

혹시라도 mapper에  board라는 폴더를 추가하고 적용하려면 이렇게 수정해주면 된다

<mapper namespace= " yun.study.mapper.board.BoardMapper">

만약수정을하고싶다면

 

appication.properties 일부

mybatis.mapper-locations=classpath:mapper/*.xml

 

xml위치를 변경하고싶다면

 

mybatis.mapper-locations=classpath:mapper/**/*.xml

/**/ 추가 하여 경로를 추가해주면 된다.

 

초기세팅하면서 다 잊어버렷던 기본 세팅하는 방법들을 다시 찾고있다..

 

 

 

serc/main/webapp/WEB-INF/spring/root-context.xml

에서 설정해 줄 수 있다.

 

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
   <property name="dataSource"       ref="dataSource"></property>
   <property name="configLocation"       value="classpath:/conf/mybatis-config.xml"></property>
   <property name="mapperLocations"   value="classpath:/mapper/*Mapper.xml"></property>
</bean>

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory2">
   <property name="dataSource"       ref="dataSource2"></property>
   <property name="configLocation"       value="classpath:/conf/mybatis-config2.xml"></property>
   <property name="mapperLocations"   value="classpath:/mapper2/*Mapper.xml"></property>
</bean>

2개의 mapper.xml 경로 설정.

 

자세한건 혹시라도 만들게 되면 찾아보자.