//DB의 Student테이블 관련 작업을 하고 싶을때
//StudentDao클래스의 객체를 만들어서
//해당 기능을 호출하면 됨
StudentDao dao = new StudentDao();
for(Student s : dao.selectAll()) System.out.println(s);
//StudentDao객체를 만들 때마다 새로운 Connection도 만들어짐
//우리는 프로그램 실행~종료까지 하나의 connection만 유지하고 싶음
//나중에 좀 더 효율적인 Connection관리는 Connection Pool을 이용해서
//StudentDao클래스의 객체가 1개만 유지되게 하려면
싱글턴 패턴
//특정 클래스의 객체가 1개만 유지되도록 하는 디자인 패턴
//특정 클래스의 객체가 하나만 만들어지고 어디서든 그 객체에 접근할 수 있음
싱글턴 패턴 만들기
//1. 생성자를 외부에서 호출하지 못하도록 private으로 숨김
//2. 객체를 대신 만들어주는 함수를 만듬
//2-1. 2의 함수가 처음 불릴 때는 새로 만든 객체를 주고, 두번째 부터는 처음에 만든 것을 다시 사용
//2-2. 2-1을 다시 사용하려면 처음 만든 객체를 어딘가에 저장해 둬야 함
//1. 외부에서 자유롭게 객체를 생성하지 못하도록 생성자를 private로 감춤
//2. 1개 유지될 객체를 저장할 참조 변수 선언
//3. 2에 대한 getter를 만들되 2가 null일때 객체 생성
//1. 생성자를 private로
//2. 자기 자신의 참조변수를 static으로 선언
//3. 2에 대한 getter를 만들되 2가 null일때 객체생성
ex>
private static StudentDao instance;
public static StudentDao getInstance() {
if(instance == null)
instance = new StudentDao();
return new StudentDao();
}
synchronized(동기화)
동기화란 하나의 자원(데이터)에 대해서 여러 스레드가 사용하려고 할때 한 시점에서 하나의 스레드만 사용할 수 있도록 하는 것이다.
실습>
Employee와 EmployeeDao만들기
//코드 (Employee)
'Programming > JSP&Servlet' 카테고리의 다른 글
2016.5.3 (0) | 2016.05.03 |
---|---|
2016.5.2 (0) | 2016.05.02 |
2016.4.29 (0) | 2016.04.29 |
2016.4.28 (0) | 2016.04.28 |
2016.4.27 (0) | 2016.04.27 |