개발자 미니민의 개발스터디

[JAVA] 자바 - JDBC (Java Database Connectivity) (Connection, DriverManager)

by mini_min
[JAVA]
자바 - JDBC (Java Database Connectivity) (Connection, DriverManager)

자바와 오라클을 연동해서 본격적으로 프로그램을 만들 수 있게 되었다!!

 

✔️ JDBC 란?

자바에서 데이터베이스에 일관된 방식으로 접근할 수 있도록 제공하는 API 다!

- SQL 문장 실행 가능

- 자바에서 데이터베이스 접속!

 

⭐ JDBC API 클래스와 인터페이스는 자바 패키지 java.sql 과 javax.sql 에 포함되어 있다!

⭐ 특징 : JDBC 는 ANSI SQL-92 표준을 지원, 공통된 SQL 인터페이스를 바탕으로 만들어진다.

 

 

✔️ JDBC 드라이버

JDBC API 를 통해 데이터베이스 연결을 제공한다.

 

 

✔️ JDBC 예외처리

데이터베이스 액세스 및 query 관련된 부분은 대부분 SQLException 예외처리를 해줘야한다.

📓 SQLException : 데이터베이스 액세스 에러 및 그 외의 에러에 대한 정보를 제공하는 예외이다.

 

-- 주요 메소드

int getErrorCode() //고유의 예외 코드 리턴
void setNextException() //SQLException 객체를 체인 끝에 추가한다.
SQLException getNextException() //setNextException() 에 의해 SQLException 객체에 체인 된 예외를 반환한다.
String getSQLstate() // SQLException 객체와 관련된 SQL 의 에러 상태 리턴

 

📓 SQLException 하위 클래스

: 무결성 제약조건 위반하는 경우 = SQLIntegerityConstraintViolationException

: 데이터 반환 오류일 때 : SQLDataException

 

 

 

✔️ JDBC DriverManager 클래스

DriverManager 는 JDBC 드라이버를 관리하기 위한 기본 클래스다.

데이터베이스 드라이버를 선택하고 새로운 데이터베이스 연결을 생성하는 기능을 한다.

 

📓 JDBC 4.0 미만은 수동으로 JDBC 드라이버를 로딩해야한다!

(Class.forName() 메소드 명시 필수 ⭐)

📓 드라이버 클래스 : oracle.jdbc.driver.OracleDriver

 

 

 

✔️ JDBC Connection 클래스

특정 데이터베이스 (DBMS) 와의 연결 (Session) 을 나타내는 객체다!

해당 객체는 쿼리를 실행하는 Statement / PreparedStatement 등의 객체를 생성하거나 Commit/Rollback 등의 트랜잭션 처리를 위한 메소드를 제공하다.

 

⭐ Connection 객체는 DriverManager.getConnection() 메소드를 호출해 얻는다.

 

 

-- 실제 DriverManager 와 Connection 객체 생성 코드

public class DBConn {
	private static Connection conn;

	// 외부객체 생성 못하게 막은 것
	private DBConn() {
	}
💡 Connection 을 가져와야 모든 걸 할 수 있다.
conn 객체로 로그인하는 개념 !

url 은 "jdbc:oracle:thin:@//오라클서버주소:포트번호/SID"

 

public static Connection getConnection() {
		String url = "jdbc:oracle:thin:@";
		String user = "유저명";
		String pwd = "비밀번호";
        
		if (conn == null) {
			try {
				//OracleDriver 로딩(JDK 7.0 이상부터는 생략 가능)
				Class.forName("oracle.jdbc.driver.OracleDriver");
				
				//Connection 객체 반환
				conn = DriverManager.getConnection(url, user, pwd);
				
				
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

		return conn;

	}
💡 static : 객체 생성 안해도 접속 만들 수 있게함
Class.forName 명시해야함! (오라클 드라이버 클래스 정보 로딩 ....)
⭐ conn ~ : Connection 객체 생성문 ....

 

-- 접속 해제하기

	// 접속 해제하기
	public static void close() {
		if(conn != null) {
			try {
				if( ! conn.isClosed()) {
					conn.close(); //Connection 객체 close
				}
			} catch (Exception e) {
			}
		}
		
		conn = null;
	}

 

 

✔️ 연결 확인하기!

public static void main(String[] args) {
		//Connection 테스트
		Connection conn = DBConn.getConnection();
		
		System.out.println(conn);

	}

 

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기