상세 컨텐츠

본문 제목

싱글톤 패턴을 이용한 데이터베이스 연결 객체 생성

IT/DBMS

by TMI1 2025. 8. 4. 12:20

본문

/*=====================
 	DBConn.java
======================= */ 
// 싱글톤 패턴을 이용한 데이터베이스 연결 객체 생성 전용 클래스 설계
//-- DB 연결 과정이 가장 부하가 크기 때문에
//   한 번 연결된 객체를 계속 하용하는 것이 리소스 낭비를 줄일 수 있다. 

package conn.util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConn
{
	private static Connection dbConn; 
	
	// 연결 메소드 리턴자료형 Connection 
	public static Connection getConnection()
	{
		if(dbConn == null)
		{				   	
			try
			{
				//ip앞에는 @붙이기 211.238.142.168 >> 자기 pc 아이피
								
				String user = "scott";
				String pwd = "tiger"; 
				
				Class.forName("oracle.jdbc.driver.OracleDriver");
								
				dbConn = DriverManager.getConnection(url, user, pwd);
			} catch (Exception e)
			{
				System.out.println(e.toString());
			}
		}
		return dbConn;
	}
		// 메소드 정의 → 오버로딩 → 연결
    	// getConnection() 메소드 오버로딩 // 전역변수로 접근 가능 
		public static Connection getConnection(String url, String user, String pwd)
		{
			if(dbConn == null)
			{
				try
				{
					Class.forName("oracle.jdbc.driver.OracleDriver");
					dbConn = DriverManager.getConnection(url, user, pwd);
				} catch (Exception e)
				{
					System.out.println(e.toString());
				}
			}
			return dbConn; 
		}
		
		// 연결 종료(해제)
		public static void close()
		{
			// 연결된 상태일 경우에만 해제를 수행 
			if (dbConn != null) 
			{
				try
				{
					
					if(!dbConn.isClosed()
				} catch (Exception e)
				{
					System.out.println(e.toString());
				}
			}
			dbConn = null; // 연결 해제 후 꼭 null로 해줘야 함 // check~!!! 
		}
}

DBConn 연결 테스트

/*=====================
 	Test00.java
======================= */
package conn.test;

import java.sql.Connection;

import conn.util.DBConn; // 서로 다른 패키지에 있으므로 

public class Test00
{
	public static void main(String[] args)
	{
		 Connection conn = DBConn.getConnection();
		 //-- getConnection() 메소드를 통해 연결 수행 
		 
		 if (conn != null)
		 {
			System.out.println("데이터베이스 연결 성공 ~!!! ");
		 }
		 else {
			System.out.println("데이터베이스 연결 실패 ~!!! ");
		 }
		 DBConn.close();
		 //-- close() 메소드를 통해 연결 종료 
	}
}

'IT > DBMS' 카테고리의 다른 글

select 쿼리문 수행  (1) 2025.08.04
JDBC 프로그램의 작성  (2) 2025.08.04
작업객체의 의미와 종류  (1) 2025.08.04
JDBC 개념 및 환경설정  (7) 2025.08.04
Oracle - PACKAGE 실습  (0) 2025.07.16

관련글 더보기

댓글 영역