컬럼중에서 _ 가 들어가는 것들을 카멜케이스로 바꿔주는 작업
그리고 BookVO 를 쓰기편하게 bookVO로 별칭을 정해준다
자바빈 클래스로 만들었다
멤버변수, 기본생성자, getter/setter 메소드를 생성해준다
매퍼xml(book_SQL.xml)을 실행시키는 DAO(Data Access Object) 클래스이다
Repository 어노테이션 : 데이터에 접근하는 자바빈 객체로 스프링에 등록해준다
DI(Dependency Injection) : 의존성 주입
new 키워드를 통해 직접 생성하지 않고!! 스프링이 미리 만들어 놓은(서버 실행 시 미리 root-context.xml을 읽어서 자바빈 객체로 인스턴스화 해놓음) sqlSessionTemplate 타입 객체를 BookDao 객에체 주입하여 사용한다
IoC(Inversion of Control) : 제어의 역전
Book 테이블에 insert
book_SQL.xml 파일의 namespace가 book이고, id가 insert인 태그를 찾아 그 안에 들어있는 sql을 실행한다
insert 성공 : 1이상, 실패면 : 0
책 상세보기
sqlSessionTemplate : 쿼리를 실행해주는 객체(root-context.xml)
selectOne() 메소드 : 1행을 가져올 때 사용 / selectList() 메소드 : 결과 집합 목록 변환(다중행)
결과행 수가 0이면? null반환
결과행 수가 2 이상이면? TooManyuResultsException 예외 발생
.selectOne("namespace.id", 파라미터)
책 목록 보기
select 결과를 목록으로 받음. selectList("namespace.id",파라미터)
책 수정하기
매퍼 xml에서 insert/update/delete의 resultType은 생략
책 삭제하기
.delete("namespace.id", 파라미터)
DI : 의존성 주입
데이터베이스 접근을 위해 BookDao 인스턴스를 주입받자
Book 테이블에 insert
메소드 재정의
insert 처리 결과(0또는 1이상)
책 상세보기, 책 목록 보기, 책 수정하기, 책 삭제하기 작성
인터페이스를 작성한다
Controller 어노테이션
스프링 프레임워크에게 이클래스가 웹 브라우저의 요청(request)를 받아들이는 컨트롤러라고 알려주는 것
스프링은 servlet-context.xml의 context:component-scan의 설정에 의해 이 클래스를 자바빈 객체로 등록(메모리에 바인딩) 하는 것이다
BookController
도서 관리 프로그램
BookService서비스를 호출하기 위해 의존성 주입(DI)
URI => http://localhost/create
Request : client가 server에 URI를 요청
Mapping : create() 메소드를 실행
ModelAndView
1) Model : return할 데이터(String, int, List, Map, VO...)를 담당
2) View : 화면을 담당(뷰(view : JSP)의 경로) ViewResolver => prifix + jsp파일명 + suffix
URI : http://localhost/create
요청 파라미터 : {"title":"","category":"","price":""}
/create(get방식)URI를 재요청
책 입력 화면으로 이동
책 상세보기
요청된URI 주소 : /detail?bookId=1
select 결과 결과 1행을 bookVO에 담을 것
forwarding => "/WEB-INF/views/book/detail.jsp"찾아서 해석/컴파일하여 응답
데이터(BOOKVO)1행을 함께 응답
but.redirect는 데이터를 응답해주지 못함