⚙ Java와 DB 연동

heeezni·2025년 5월 22일
post-thumbnail

Java 언어가 데이터베이스를 다루기 위해서는,
데이터베이스를 만든 회사(벤더)에서 제공하는 JDBC 드라이버를 먼저 메모리에 로드해야 한다.

⚠ 주의! 일반 클래스처럼 new 할 수없고,
JVM의 Method 영역에 개발자가 직접 올려야함.
👉 Class.forName()사용

이렇게 하면 JDBC 드라이버가 DriverManager에 자동 등록되어,
Java에서 DB에 접속할 수 있게 된다.
👉 DriverManager.getConnection() 사용해서 연결


전제: Oracle DB가 localhost:1521에서 실행되고 있어야 함

1. JDBC 드라이버 준비 (ojdbc.jar)

Java가 Oracle DB와 통신하려면 중간다리 역할을 하는 "JDBC 드라이버"가 필요함

🔗 JDBC : Java Database Connectivity

파일명 예: ojdbc6.jar, ojdbc8.jar, ojdbc11.jar (버전에 따라 다름)

jar Java ARchive(아카이브 파일) : Java 전용 ZIP 파일
Java 클래스 파일(.class), 메타데이터, 리소스들(이미지, 설정 파일 등)을 하나로 묶은 압축 파일임

2. JDBC 드라이버 프로젝트에 추가

Java 프로젝트에서 이 ojdbc.jar 파일을 참조하지 않으면 ClassNotFoundException 발생함.

▶ IDE에서 추가 방법

① 이클립스일 경우
프로젝트 우클릭 → Build Path → Configure Build Path
Libraries 탭 → Add External JARs → ojdbc6.jar 선택 (우리는 ojdbc6.jar 추가함)

② IntelliJ일 경우
File → Project Structure → Libraries → + 버튼 → Java 선택 → ojdbc6.jar 추가

🔍 확인:

Class.forName("oracle.jdbc.driver.OracleDriver");  
//JVM의 메서드 영역에 개발자가 직접 로드 ⭐

System.out.println("드라이버 로드 성공");

3. Oracle DB 접속 정보 확인

Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "java", "비밀번호");
							//"내 컴퓨터에서 실행 중인 1521번 포트(오라클 기본포트번호)의 XE 인스턴스에 접속한다"
	if(con!=null) {
		System.out.println("접속 성공");
	}else {
		System.out.println("접속 실패");
	}

EditPlus로 Java-MySQL 연동해보자

⭐ classpath설정 :
.jar 들어있는 파일경로(lib폴더에 넣었음) + \ + JDBC 드라이버 이름(mysql-connector-j-8.0.33).jar
(확장자 이름 .jar 빼먹지 말기!!!)

/*MySQL DB연동*/
package db;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
//ClassNotFoundException는 java.lang패키지라 import 안해도 됨

class DBTest{
	public static void main(String[] args) {
		//1단계) 제어하기를 원하는 드라이버 먼저 로드 (JVM-Method 영역)
		try{
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("드라이버 로드 성공");
			
			//2단계) 접속
			String url="jdbc:mysql://localhost:3306/dev";
			String id="root";
			String pass="비밀번호";
			//Connection : 접속 성공 후, 그 접속 정보를 가진 인터페이스
			//이 객체가 null이면 접속 실패
			Connection con=DriverManager.getConnection(url, id, pass);
			if(con==null){
				System.out.println("접속 실패ㅡ.ㅡ");
			}else{
				System.out.println("접속 성공 ^.^");
			}
		}catch(ClassNotFoundException e){
			System.out.println("드라이버를 찾을 수 없습니다. 확인해주세요.");
		}catch(SQLException e){
			e.printStackTrace();
            //에러 순서를 스택 순서로 출력해줘
		}
	}
}

DB연동 시작도 안했는데 울 뻔 ...ㅠㅠ 환경설정 어렵다

profile
아이들의 가능성을 믿었던 마음 그대로, 이제는 나의 가능성을 믿고 나아가는 중입니다.🌱

0개의 댓글