09009

[Java] JDBC (2) (eclipse와 Oracle, MySQL) 본문

Back-End/JAVA
[Java] JDBC (2) (eclipse와 Oracle, MySQL)
09009

일단, Java와 DB를 연동하는 순서를 간략하게 먼저 요약하자면 아래와 같다.

 

1) 드라이버 load

     forName(): java.lang.Class 클래스의 static 메소드이다.

                            패키지명을 작성한 후 클래스 이름을 문자열 형태로 지정하면 이를 JVM에 안으로 읽어 들이도록 한다.

    Class.forName(“driver”)을 이용해서 Driver Class를 로딩하면 객체가 생성되고, DriverManager에 등록된다.

Class.forName(“driver명”)

 

2) Connection 클래스를 이용한 DB 연결

     Connection 클래스:  DB를 연결하여 작업을 수행할 수 있도록 만들어 주는 클래스

                                             DriverManager 클래스의 static 메소드인 getConnection()을 호출해야 한다

    DriverManager 클래스는 JDBC 드라이버를 통헤 Connection을 만드는 역할을 수행한다.

Connection conn = DriverManager.getConnection(url, userId, password)

 

3) Statement 클래스를 이용한 SQL을 실행할 객체를 생성

이전 단계에서 생성한 Connection 클래스 (conn) 로 접근하여 createStatement() 메소드를 호출하여 생성한다.

Statement stmt = conn.createStatement()

 

4) SQL 실행

    조회 : rs에는 조회된 데이터 값이 저장된다.

 ResultSet rs = stmt.executeQuery(sql)

     

 조회된 데이터가 1건일 경우

if (rs.next()) {
	// 읽은 데이터 처리
    ...
    rs.getString(...) // 괄호 안 속에 들어가는 순서나 컬럼명 가능
    rs.getInt(...)
    rs.getDate(...)
    ...
} else 
     // else문에 없는 데이터라는 정보를 알려주는 문구를 출력

 조회된 데이터가 여러 건일 경우

while(rs.next()) {
	// 읽은 데이터 처리
    ...
}

 

  입력 / 수정 / 삭제 : result에는 성공한 개수 반환

int result = stmt.executeUpdate(sql)
if (result > 0) {
	//  성공
}
else  // 실패

 

5) DB 연결 해제 

rs.close();
stmt.close();
conn.close();

Oracle과 Java 연결

package ch17;

import java.sql.*;

public class OraConn {
	public static void main(String[] args) {
		String driver = "oracle.jdbc.OracleDriver";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe"; // oracle 정식버전 xe -> orcl
		try {
			Class.forName(driver); // 1) 드라이버 load
			Connection conn = DriverManager.getConnection(url, "c##scott", "tiger"); // 2) connection 클래스를 이용한 DB연결
			System.out.println("연결에 성공하였습니다.");
			conn.close(); //3) DB연결 해제
			
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

 

에러가 발생할 경우를 대비하여 try - catch문으로 예외처리를 해준다.

필자의 경우 Oracle 21 버전이므로 useid는 'c##scott'으로 작성해야 컴파일 에러가 발생하지 않는다.

 

 

MYSQL과 Java 연결

package ch17;

import java.sql.*; 

public class MyConn {
	public static void main(String[] args) {
		String driver = "com.mysql.cj.jdbc.Driver";
//					 ip번호    port명 DB명
		String url = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
		try {
			Class.forName(driver); // 1) 드라이버 load        
			Connection conn = DriverManager.getConnection(url, "root", "mysql"); // 2) connection 클래스를 이용한 DB연결
			System.out.println("연결에 성공하였습니다.");
			conn.close(); // 3) DB연결 해제
		} catch(Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

위의 소스코드에 작성한 port명은 아래 스크린샷에 보이는 것과 같이 작성한 것이고, port명 바로 옆에 작성된 test는

MYSQL과 Java를 연동할 DB명을 작성한 것이다.