1. MVC 패턴
Model
데이터와 관련된 역할. 데이터를 담는다거나, DB에 접근해서 데이터 입출력
View
사용자가 보게 될 시각적인 요소 / 화면 (입력, 출력)
Controller
사용자의 요청을 받아서 처리 후 응답화면을 지정하는 역할
- View 단에서만 출력문(System.out.println)를 사용한다.
- Model의 DAO(Data Access Object)단에서만
DB에 직접적을 접근한 후 해당 SQL문 실행 및 결과를 받는다.
2. ojdbc6.jar
프로젝트 선택 후 마우스 오른쪽 클릭 -> Properties -> Java Build Path -> Libraries -> Add External JARs
-> ojdbc6.jar가 있는 경로에서 jar 선택 -> Apply and Close
Referenced Libraries에 ojdbc6 추가 확인
ojdbc6.jar 파일을 추가하지 않으면 ClassNotFoundException 발생
3. Statement란?
해당 DB에 SQL문을 전달하고 실행한 후 결과를 받아주는 객체
Connection 클래스의 createStatement() 메소드를 호출하여 생성
실행시 SQL문을 매개변수로 전달하여 질의를 수행
Statement : 완성된 SQL문을 실행할 수 있는 객체
PreparedStatement : SQL문을 바로 실행하지 않고 잠시 보관하는 개념으로,
미완성된 SQL문을 먼저 전달하고 실행하기 전에 완성 형태로 만든 후 실행만 하면 됨.
미완성된 sql문 만들기( 사용자가 입력한 값들이 들어갈 수 있는 공간을 ?(위치홀더)로 확보
각 위치홀더에 맞는 값들을 세팅
Statement(부모)와 PreparedStatement(자식) 차이점
1 )
Statement 는 완성된 SQL문,
PreparedStatement는 미완성된 SQL문
2)
Statement 객체 생성시 stmt = conn.createStatement();
PreparedStatement 객체 생성시 pstmt = conn.prepareStatement(sql);
3)
Statement로 SQL문 실행시 결과 = stmt.executeXXX(sql);
PreparedStatement로 SQL문 실행시 ?(위치홀더)로 빈 공간을 실제 값으로 채워준 뒤 실행.
pstmt.setString(?위치, 실제값);
pstmt.setInt(?위치, 실제값);
결과 = pstmt.executeXXX();