2013년 8월 18일 일요일

Design pattern: Factory Method

RedApp.class
SQL과 연동하기 위한, list(), add(), view(), update() 메소드 수정.



MySQL 서버에 연결할 도구를 준비.
- JDBC DRIVER 클래스 중(.jar 파일에 들어 있는 클래스들 중에서)
- java.sql.Driver 인터페이스를 구현한 클래스를 먼저 로딩한다.
- 이 클래스가 java.sql.Connection 인터페이스를 구현한 클래스를 알고 있다.

1.서버와 연결

Connection con = null;

2. SQL문을 보낼 도구를 얻기

- createStatement()를 호출하여 SQL문을 서버에 보낼 도구를 얻는다.

Statement stmt = con.createStatement();

3. SQL 서버에 보냄

ResultSet rs = stmt.executeQuery("select MNAME,PHONE,EMAIL, "
+ "from MEMBERS order by MNAME");

- executeQuery()는 서버에 SQL문을 보낸다.
- 서버는 결과를 준비한다.
- executeQuery()는 서버에서 결과를 가져올 도구를 리턴한다.

4. 서버의 결과를 가져와서 출력.
- next()를 호출하여 서버로부터 1 레코드의 결과를 가져온다.

Design pattern: Factory Method
- 객체 생성이 복잡한 경우 특정 메서드를 통해 얻는 방식.




Statement vs. PreparedStatement

*1) 소스 가독성:

SQL문이 복잡할 수록 읽기 어렵다. <==> 간결하다.

*2) 바이너리 데이터(이미지, 음악, 동영상 등) 입력:

불가(base64와 같은 형식으로 인코딩 시 가능) <==> 가능

3) 반복 수행시 속도:

매번 SQL문을 DBMS 형식에 따라 변환 속도 느리다
<==> 한번만 변환, 그리고 실행, 속도 빠르다.


add()





delete()






view()





update()







list()