이렇게 3개 추가
memberdao class를 implements 했다는 의미로 Impl
멤버 컨트롤러 생성
의존관계
스프링이 이 클래스를 직접 생성하고 관리하게끔 해야 함
기본 패키지의 하위에 있어서 컴포넌트 스캔함
컴포넌트 스캔을 통해서 빈(객체) 생성
오직 하나만 생성 => 싱글톤
현재 dao는 비어있음. 밑에서 이걸 참조하려고 하면 널포인트익셉션 발생
-> 500번 버스 타야 함..
그래서 의존 객체 주입 DI 해야 함
dao 객체 참조값이 주입이 됨
DI는 스프링 핵심 개념
1,2는 지켰지만 아직 3은 X
memberdaoImpl객체는 memberdao타입이기도 함
인터페이스 타입으로 바꿈
(클래스 임포트 하지 말고)
이렇게 의존관계를 끊어버림
memberdaoImpl클래스 삭제해도 멤버 컨트롤러에 아무런 오류 발생하지 않음
두 개 다 같은 memberdao 타입인데 그럼 autowired로 dao 작성 시 여기에 무엇이 들어오나?
이렇게 같은 타입이 여러 개인 경우 스프링이 뭘 넣어줘야 할지 몰라서 오류가 남
명시적으로 이름 부여해줘야 함
어노테이션 없이 직접 명시해도 생성됨
mybatis를 배운다는 건, sqlSessionTemplate 직접 배우는 것
인터페이스로 주입받기
이렇게 주입이 됨
옛날에 길게 작성했던 dao를 이렇게 해결이 가능
여기 list를 바로 런 하면 안 됨. web-inf에 있는 건 요청이 안됨. 인덱스 타고 들어가야 함
sqlsession을 통해 db에서 회원 목록을 가져옴
여기서 홈컨트롤러, 멤버 컨트롤러, 멤 버디 에이오, 에스큐엘 세션은 모두 bean! 스프링에서 관리
sqlsession을 사용한다는 건 mybatis 사용한다는 것
메이븐 프로젝트는 pom.xml로 관리
삭제 기능 구현하기
인터페이스에 메서드 먼저 추가
memberDaoImpl에 오류 생김. 언임플리티드 메서드 클릭하여 추가
저기에 바인딩
이렇게 mybatis를 잘 이용하면 편하게 DB에 있는 걸 가져올 수 있다
동적 sql문을 만들 수 있음