
springBootApplication 안에 componentScan 담겨있음
app의 어노테이션 추가
@Bean 객체 생성 (쿼리문 수행 관련)
MVC 패턴 대로 생각하면서 프로젝트 구현하기
DB의 데이터를 그대로 가져오려고 Map형태로 구현하는 경우가 있는데
이는 Map에 추가 혹은 수정이 가능하기 때문에 데이터에 접근하지 못하도록
테이블관련 클래스를 만들어 보관함?
dto = model = domain
service = business Object(bo)
xml 는 테이블당 하나임
xml 에 mapper에 규칙을 정하는 dtd 를 추가할 수 있다.(규칙에 어긋나면 빨갛게 뜸)
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

mapper 위치
구현 순서 : model-> bo -> dao -> xml
Mapper에서 불러와야함

@Autowired 가 아닌 다른 방법으로도 불러올 수 있음 (이게 가장 쉬운방법임)
- Application 설정
- application.properties 설정 -> DB연결
- 컨트롤러 생성 (json 데이터형으로 반환할거기 때문에 restController)
- BO생성(@Service) -> 컨트롤러한테 주기 위해 DAO( mapper )한테 요청함.
- DAO - mapper 생성(@Repository)
- xml (정해진 디렉토리명과 파일명을 통해 생성!) - mappers.(테이블명)Mapper.xml
- xml에 dtd를 붙이면 규칙에 어긋났을 시에 빨간줄로 알려줌


사용자가 url을 요청했을때 restController에서 mapping한 url주소로 요청이 들어온다.
요청이 들어왔을 때 처리하는 코드가 적혀있다.(데이터를 리턴함)
- 500error -> 서버에러임 스프링빈이 BO가 null 이라면 Autowired 어노테이션이 없거나 Service 어노테이션이 없을때
DI가 안되는 현상이기 때문임.
- 500error -> xml을 못찾는 경우 mapper의 namespace에 오타가 있거나 공백이 있을때 ibatis~~가 나올경우: DAO(repository or database)에 오류가 있음 Invalid bound statement(not found) -> mapper.xml 에 오류가 있음
- 500error -> mapper의 쿼리 태그의 id명과 mapper의 메서드명이 다를경우: Invalid bound statement(not found) -> mapper.xml 에 오류가 있음
- 500error -> mapper.xml 에 쿼리문에 오타가 있을 경우
###이 많이 나올경우가 해당됨 SQLSyntaxError