반응형
public class DataBase
{
private static Connection m_conn = null;
private static DataBase s_Obj = new DataBase();
private DataBase()
{
if( s_Obj == null)
{
s_Obj = this;
}
}
public static DataBase getInstance()
{
return s_Obj;
}
//connection 반납
public Connection getConnection( String szDBUrl, String szUser, String szPass)
{
try
{
if( m_conn == null)
{
//String szDBUrl = "jdbc:oracle:thin:@" + m_szHost + ":" + m_szPort + ":" + m_szDBName;
Class.forName( "oracle.jdbc.driver.OracleDriver");
m_conn = DriverManager.getConnection( szDBUrl, szUser, szPass);
}
return m_conn;
}
catch( Exception e)
{
System.out.println( " @DB Connection Create Error");
e.printStackTrace();
return null;
}
}
public void closeConnection()
{
try
{
m_conn.close();
}
catch( Exception e)
{
System.out.println( " @Already Closed DB Connection");
}
}
}
DataBase 클래스의 생성자를 private 로 선언하여 자기 자신만 생성할 수 있도록 하고, static 으로 미리 생성해두면, 객체가 닫 하나만 존재하게 된다. 그리고 이 안에서 관리하는 connection 역시 유일하게 된다.
connection 을 여러개 관리하고 싶으면, pool 을 만들어 두어 미리 생성해 관리하는 방법도 고려해 볼 수 있다.. 이는 이미 오래전부터 쓰여오던 방식이라, 오픈된 소스가 많이 있다.
정리해두기위해 올린다.
반응형
'프로그래밍' 카테고리의 다른 글
PhoneGap - 레이아웃 변경하기 (Layout Custom) (1) | 2012.02.22 |
---|---|
윈도우 xp image (0) | 2011.09.01 |
안드로이드폰과 서버 사이의 통신 (0) | 2010.08.09 |
인사동 관광정보 홈페이지 기능추가 작업중 (0) | 2009.11.06 |
테이블 규모를 너무 크게 만들고 있는 것 같다. (0) | 2008.06.03 |