dbconnオブジェクトの作成(データベース接続)
<dbConn 객체 생성>
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn
{
// 변수 선언
private static Connection dbConn; // static을 쓴 이유는 dbConn이 공유되어야 하기 때문
// 여기에서 static은 탄생시점보단 공유의 개념으로 사용
// 지금은 dbConn이 추상적인 상태,
// 메소드 정의 → 데이터베이스와 연결하는 메소드 정의
public static Connection getConnection() throws ClassNotFoundException // Connection은 열쇠, getConnection()은 열쇠 내놔라
, SQLException
{
// 한 번 연결된 객체를 계속해서 사용
// 즉, 연결되지 않은 경우에만 연결을 시도하겠다는 의미
// dbConn이 null일 때만 if문 실행
// != null 이면 Connection이 되어있다는 거니까 dbConn을 return
// == null 이면 연결시켜줘야함.
// → 싱글톤(디자인 패턴)
if (dbConn == null)
{
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// -- 『localhost』 는 오라클 서버의 ip 주소를 기재하는 부분
// 『1521』은 오라클 리스너 Port Number
// 『xe』는 오라클 SID (Express Edition 의 SID는 xe)
String user = "scott";
// -- 오라클 사용자 계정 이름
String pwd = "tiger";
// -- 오라클 사용자 계정 암호
Class.forName("oracle.jdbc.driver.OracleDriver");
// Class라는 class는 class를 찾아주는 class (ㅋㅋ)
// forName은 이 경로를 타고들어가 OracleDriver 라는 클래스를 찾아줘 라는 의미.
// 예외가 발생하는 상황
// OracleDriver 클래스에 대한 객체 생성(클래스를 찾아줘)
dbConn = DriverManager.getConnection(url, user, pwd);
//-- 오라클 서버 실제 연결
// 갖고 있는 인자값(매개변수)은 오라클주소, 계정명, 패스워드
//
}
return dbConn;
//-- 구성된 연결 객체 반환
}
// getConnection() 메소드의 오버로딩 → 연결
public static Connection getConnectino(String url, String user, String pwd) throws SQLException, ClassNotFoundException
{
if (dbConn == null)
{
Class.forName("oracle.jdbc.driver.OracleDriver");
dbConn = DriverManager.getConnection(url, user, pwd);
}
return dbConn;
}
// 메소드 정의 → 연결 종료
public static void close() throws SQLException
{
// dbConn이 null 이 아닐때 즉, 연결 된 상태일때 종료하겠다
if (dbConn != null)
{
// 연결 객체(dbConn)이 isClosed() 메소드를 통해 연결 상태 확인
//-- 연결이 닫혀있는 경우 true를 반환
//-- 연결이 닫혀있지 않은 경우 false 반환
if (!dbConn.isClosed())
{
dbConn.close();
//-- 연결 객체의 close() 메소드 호출을 통해 연결 종료
}
}
// forName , getConnection 메소드들(기울어져있는글씨)은 static 메소드들.
// 인스턴스 생성 안하고 바로 사용했으니.
dbConn = null;
//-- 연결 객체 초기화
}
}
<try~catch 문을 통해 예외처리 한 dbConn 객체 생성>
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnBackup
{
private static Connection dbConn;
public static Connection getConnection()
{
if (dbConn == null)
{
try
{
String url = "jdbc:oracle:thin:@localhost:1521:xe";
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;
}
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())
dbConn.close();
} catch (Exception e)
{
System.out.println(e.toString());
}
}
dbConn = null;
}
}
Reference
この問題について(dbconnオブジェクトの作成(データベース接続)), 我々は、より多くの情報をここで見つけました https://velog.io/@cseon230/dbConn-객체생성-Database-Connectionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol