JDBC를 싱글톤으로

이수보🧑🏻‍💻·2022년 1월 14일
0

초급

목록 보기
23/25

싱글톤

음 꼭 JDBC를 싱글톤으로 디자인 해야한다거나 하는 것이 아니라 선택 사항이지만 아마 모두 이 글을 읽으면 선택하게 될겁니다 ㅎㅎㅎㅎㅎ

앞서 JDBC 를 보았는데 거기 상당히 귀찮은 부분이 있습니다. 무엇일까요?

String url = "jdbc:oracle:thin:@localhost:1521:xe";  
String user = "LSB96";
String password = "java";
		
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;

바로 위 처럼 접속하는 부분입니다.

물론 귀찮은 것 뿐만 아니라 매 실행마다 접속하고 close 하고 를 반복하기 때문에 실행에도 부담이 됩니다. 따라서 강요아닌 강요로 싱글톤패턴으로 디자인 하는 것을 추천 드립니다.

싱글톤 패턴
인스턴스의 생성을 제한하여 하나의 인스턴스만 사용하는 디자인 패턴
즉 new 를 사용하지 못하게 막아 새로운 주소를 만들지 않고 하나의 주소로 값을 공유하며 메모리 낭비를 줄입니다.

사용형식

public class JDBC{

1. 우선 하나의 객체를 저장할 공간을 만들어야 합니다.
    
    private static JDBC instance;
    
2. 그 후 다른 클래스에서 객체 생성을 하지 못하도록 기본 생성자를 private 처리합니다.
   
   private JDBC(){}
    
3. 1/2 과정에서 꽉 막아버리면 이 클래스 자체를 사용 못하죠?
         그래서 한 번만 호출하여 하나의 객체를 얻을 수 있도록 메소드를 만들어줍니다. 
    
    public static JDBC getInstance(){
		if(instance == null){
        	instance = new JDBC();
        }    
        return instance;
    }
   
}

3번 설명 -> 앞으로 우린 new 대신 getInstance로 인스턴스화 할겁니다.
                만약 JDBC 타입의 instance변수에 객체가 없다면 객체를 저장하여
                리턴합니다.

0개의 댓글