[JDBC] 사용하기

suyeon·2022년 5월 10일
0

JDBC

목록 보기
1/2
post-thumbnail

JDBC, Java Database Connectivity

  • 자바로 데이터베이스 연결 및 관련 작업을 할 때 사용하는 API(Application Programming Inteface)
  • 자바(응용 프로그램)와 오라클(데이터베이스) 연결 시켜주는 기술

JDBC 설정

  • 각 데이터베이스별로 관련 클래스 제공 > *.jar
  • DBMS 회사에서 배포 or Oracle에서 배포
  • Oracle은 설치 시 그 안에 같이 배포 (ojdb6.jar)

Eclipse에서 JDBC 환경 설정

  1. 프로젝트 폴더 생성 > lib 폴더 생성 > "lib" > ojdbc6.jar 복사
  2. 프로젝트 마우스 우클릭 > Build Path > Configure Build Path
  3. Classpath 클릭 > Add JARs... > ojdb6.jar 클릭
  4. Referenced Libraries 확인

자바 환경에서 JDBC 실행 방법

  • 자바프로그램 + JDBC <- SQL -> Oracle Server

1. 자바 응용 프로그램 실행

2. DB 서버 접속

JDBC > Connection 클래스 사용

1) 호스트명 : 서버 IP or 도메인 주소 > localhost
2) 포트번호 : 1521
3) SID : xe
4) 드라이버 : thin
5) 사용명 : hr
6) 암호 : java1234

3. 질의

JDBC > Statement 클래스 사용

1) SQL 사용
2) 반환값이 없는 쿼리

  • select를 제외한 모든 쿼리

3) 반환값이 있는 쿼리

  • select
  • 결과셋을 반환하는 쿼리
  • 결과셋을 업무에 사용 ⭐
  • 결과셋으로 ResultSet 클래스를 사용해서 반환
  • ResultSet 탐색(= select 결과셋을 탐색)

4. 접속 종료

JDBC > Connection 클래스 사용
1) commit / rollback
2) 접속 종료

JDBC 라이브러리 클래스

  • Connection, Statement, ResultSet 클래스

이클립스에서 JDBC 접속 방법

  1. DB 접속 : Connection 클래스
Connection conn = null;
  1. 연결 문자열 생성(Connection String) : 접속 정보 문자열
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
  1. 설치한 JDBC 드라이버 로딩(ojdbc6.jar)
Class.forName("oracle.jdbc.driver.OracleDriver");
  1. 접속 ⭐
  • Connection 객체 생성 + 오라클 접속
  • 오라클에 접속된 정보를 conn 객체가 가지고 있다
conn = DriverManager.getConnection(url, id, pw);
  • 접속 상태 확인 - false: 접속 성공 / true: 접속 실패
System.out.println(conn.isClosed()); 
  1. 업무 진행 Query > 여기만 달라짐 나머지는 똑같다
  • 항상 conn.isClose()가 false때만 SQL을 처리한다
  1. 접속 종료
conn.close();

DBUtil.open() 클래스 생성

  • 앞으로 DB 연결은 이 클래스를 사용한다.
package com.test.java;

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

public class DBUtil {

	private static Connection conn = null;

	public static Connection open() {
		// id, pw 고정!!
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "hr";
		String pw = "java1234";

		try {

			Class.forName("oracle.jdbc.driver.OracleDriver");

			conn = DriverManager.getConnection(url, id, pw);

			return conn; // 접속 성공

		} catch (Exception e) {
			System.out.println("DBUtil.open");
			e.printStackTrace();
		}

		return null; // 접속 실패

	}// open

	// 오버로딩
	// 서버 주소, 계정 아이디, 계정 패스워드
	public static Connection open(String server, String id, String pw) {

		String url = "jdbc:oracle:thin:@" + server + ":1521:xe";

		try {

			Class.forName("oracle.jdbc.driver.OracleDriver");

			conn = DriverManager.getConnection(url, id, pw);

			return conn;

		} catch (Exception e) {
			System.out.println("DBUtil.open");
			e.printStackTrace();
		}

		return null;

	}// open



	public static void close() {
		try {
			conn.close();
		} catch (Exception e) {
			System.out.println("DBUtil.close");
			e.printStackTrace();
		}
	}// close

}// DBUtil

오류 메세지

  1. 서버 주소 X

    • IO 오류: The Network Adapter could not establish the connection
  2. 아이디 X / 비밀번호 X

    • ORA-01017: invalid username/password; logon denied
  3. 서버 중지

    • Listener refused the connection with the following error:
  4. 연결 문자열 오타

    • 부적합한 Oracle URL이 지정되었습니다
  5. 포트번호 X

    • IO 오류: The Network Adapter could not establish the connection
  6. SID X

    • Listener refused the connection with the following error:
    • ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
  7. 드라이브 X

    • oracle.jdbc.driver.OracleDridver
  8. ojdbc.jar X

    • oracle.jdbc.driver.OracleDriver

0개의 댓글