[문제 상황] Mapper.java 파일을 찾지 못함. [에러 내용] invalid bound statement (not found) Mapper.java [원인] Mapper Scan이 정상적으로 이뤄지지 않음. [조치 내용] (1) mybatis 관련 dependency 추가 및 Mapper.java에 @mapper 어노테이션 추가 - 추가한 dependency 내용 : dependency 추가 후 .m2 폴더에 정상적으로 다운로드 되었는지 확인 및 vscode 재시작. org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 (2) application.properties에 mapper location 관련 설정내용 추가 - 추가한 설정내용 mybati..
[문제 상황] Controller.java에 requestMapping 해둔 URL을 찾지 못함 [원인] Component Scan을 통한 Bean 등록이 정상적으로 이뤄지지 않음 [조치 내용] 스프링 부트 어플리케이션 실행 시 Component Scan이 이뤄지는데, @ComponentScan 어노테이션을 이용해 scan 시작지점 및 Bean으로 등록하지 않을 클래스를 설정할 수 있다. @ComponentScan 어노테이션을 이용해 별도로 지정하지 않는 경우, 해당 spring boot project의 시작지점인 Application.java 파일이 위치한 패키지가 기본 값으로 사용된다. 나의 경우 @ComponentScan 어노테이션으로 지정한 내용은 없었고, 패키지 구조가 잘 못 되어있어서 Comp..
oracleDB에 rownum이 있다면, mariaDB에는 limit이 있다. ex1) oracleDB : select * from member where rownum = 1; mariaDB : select * from member limit 1; ex2) oracleDB : select * from member where rownum < 3; mariaDB : select * from member limit 2; limit n 하면 상위 n 개의 행이 반환된다.
oracleDB에서 SYSDATE로 사용했던 것과 달리 mariaDB에서는 SYSDATE() 또는 NOW()로 현재 시간을 가져오게 된다. [SYSDATE()와 NOW()의 차이점] *SYSDATE() : 쿼리에서 중간중간에 날짜를 조회할 때를 기준으로 날짜 및 시간이 적용되며, 쿼리가 길어지는 경우 변하게 된다. *NOW() : 하나의 쿼리 단위로 동일한 값을 반환한다. 쿼리가 길어져 조회 시점이 달라도 값은 달라지지 않으며, 처음 쿼리가 시작될 때의 날짜 및 시간으로 고정된다. (참고 사이트 : https://victorydntmd.tistory.com/143)