자바에 오라클 DB연동을 해봅시다! 

 

1. ojdbc를 다운받아야합니다 (https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html

저는 java8 사용중으로 ojdbc8.jar을 다운받았다. ( 자바8이면 아래 jar 다운받으면 됨)

ojdbc8.jar
4.81MB

 

2.  라이브러리 추가해주기 

프로젝트에 JRE system ... 우클릭 후 Properties를 선택하고 아래 이미지와 같이 클릭클릭! 따라간다. 

 

 

다운받은 경로에있는 jar를 선택해주면 됩니다. 

 

적용이 완료되면 아래와 같이 라이브러리가 적용된게 보인다. 

 

자 이제 DB Connection 을 담당할 Class를 생성해주자.

DB username 과 pw를 입력하고 url은 본인이 접속하고자 하는 정보로 연결하면 된다. 나는 로컬DB로 연결~~ 

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

public class DBHelper {
	
    public static Connection dbConn;
    
    public static Connection getConnection() {
        Connection connect = null;
        
        try {
        	// 접속정보 설정 
            String user = "아이디"; 
            String pw = "비번";
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            
            // 드라이버 셋팅 
            Class.forName("oracle.jdbc.driver.OracleDriver");
            
            // 연결! 
            connect = DriverManager.getConnection(url, user, pw);
            
            System.out.println("----------OK;");
           
        } catch (ClassNotFoundException cnfe) {
            System.out.println("DB 드라이버 로딩 실패 :"+cnfe.toString());
        } catch (SQLException sqle) {
            System.out.println("DB 접속실패 : "+sqle.toString());
        } catch (Exception e) {
            System.out.println("Unkonwn error");
            e.printStackTrace();
        }
        return connect;     
    }

    public static void main(String[] args) {
    	// 연결테스트 
    	getConnection();
	}
}

 

자 이제 실행해보면  연결이 잘되었다면 콘솔창에 "DB Connection OK;" 문구가 출력된다.~ 

 

 

 

여기까지 잘 되었다면 이제 CRUD를 실행해보자 ~~

 


import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;



public class MyTest {

    public static void main(String[] args) {

		Connection con = null; // 데이터베이스에 접속하기 위한 변수
		Statement stmt = null; // SQL 구문을 실행하기 위한 변수
		ResultSet rs = null; // Select 구문 실행했을 때 결과를 저장하기 위한 변수
		PreparedStatement pstmt = null; // 삽입을 위한 Statement 변수 선언

		try {

			/*******************************************
			 * DB CONNECTION
			 ******************************************/
			con = DBHelper.getConnection();
			System.out.println(con);
			
			

			/*******************************************
			 * INSERT
			 ******************************************/
			pstmt = con.prepareStatement("insert into 테이블명 (컬럼명1, 컬럼명2) values(?, ? )");
			// 물음표에 들어갈 값들을 정의해준다. 
			pstmt.setString(1, "A1");
			pstmt.setString(2, "A2");
			int result = pstmt.executeUpdate();
			pstmt.close();
			
			
			
			/*******************************************
			 * SELECT
			 ******************************************/
			stmt = con.createStatement();
			rs = stmt.executeQuery("select * from 테이블명");
			while (rs.next()) {
				// 컬럼 순서대로 타입에 맞춰 출력하면 된다.
				// 첫번째 컬럼이 숫자 타입인 경우 rs.getInt(1)
				// 두번째 컬럼이 문자 타입인 경우 rs.getString(2)
				System.out.println(rs.getInt(1) + ":" + rs.getString(2));
			}
			;
			stmt.close();
			if (rs.next()) System.out.println("데이터가 없습니다.");
			
			
			

			/*******************************************
			 * UPDATE
			 ******************************************/
			String tmp = "UPDATE 테이블명 SET 컬럼명 = 업데이트할 값  WHERE 조건";
			pstmt = con.prepareStatement(tmp);
			pstmt.executeUpdate();
			pstmt.close();

			
			
			
			/*******************************************
			 * DELETE
			 ******************************************/
			stmt = con.createStatement();
			rs = stmt.executeQuery("delete from 테이블명 where 조건");
			stmt.close();
			
			

		} catch (SQLException e) {
			e.printStackTrace();

		} finally {
			try {
				if (con != null) con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}

}

 

만약 실행 중 에러가 발생하거나 DB에 업데이트가 안되는 경우 DB툴에서 COMMIT;  한번해주기~~ 

 

 

끝! 

+ Recent posts