티스토리 뷰
[문제 상황]
Mapper.java 파일을 찾지 못함.
[에러 내용]
invalid bound statement (not found) Mapper.java
[원인]
Mapper Scan이 정상적으로 이뤄지지 않음.
[조치 내용]
(1) mybatis 관련 dependency 추가 및 Mapper.java에 @mapper 어노테이션 추가
- 추가한 dependency 내용
: dependency 추가 후 .m2 폴더에 정상적으로 다운로드 되었는지 확인 및 vscode 재시작.
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
(2) application.properties에 mapper location 관련 설정내용 추가
- 추가한 설정내용
mybatis.mapper-locations:mapper/*.xml
(3) @MapperScan 어노테이션 추가 및 SqlSessionFactory Bean 등록
spring boot project의 시작지점인 Application.java 파일에 @MapperScan 어노테이션 추가 및
SqlSessionFactory 생성 및 Bean 등록내용 작성함.
- @MapperScan 어노테이션은 @Mapper로 명시된 interface를 스캔하기 위해 사용하며,
아래 내용과 같이 scan할 basePackage를 명시하여 사용할 수 있다.
@MapperScan(value = {"com.introsite.*"})
- SqlSessionFactory는 sqlSession을 생성할 목적으로 사용된다.
아래 내용은 SqlSessionFactory를 Bean에 등록하는 내용이며, 이 역시 Application.java 파일 내에 작성했다.
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
Resource[] res
= new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*Mapper.xml");
sessionFactory.setMapperLocations(res);
return sessionFactory.getObject();
}
(4) 재시작 및 정상 조회 확인
[참고 사이트]
: https://hyojun123.github.io/2018/09/14/springboot2/
: https://mybatis.org/spring/ko/factorybean.html
'개발 일지' 카테고리의 다른 글
[springboot] JSP 한글 깨짐 관련 처리 (0) | 2020.07.19 |
---|---|
[mariaDB] DB 시작 or 재시작 하기 (0) | 2020.07.17 |
[springboot] Controller에 매핑한 URL을 찾지 못하는 경우 (0) | 2020.07.13 |
[mariaDB] rownum과 같은 역할을 하는 limit (0) | 2020.07.11 |
[mariaDB] 현재 시간 가져오기 (0) | 2020.07.11 |