[ java ] jdbc 연동 - 상태창, 연결확인 > java

본문 바로가기

사이트 내 전체검색

java

[ java ] jdbc 연동 - 상태창, 연결확인

작성일 20-12-23 11:03

페이지 정보

작성자 웹지기 조회 5,544회 댓글 0건

본문

jdbc 연결 상태 확인창 열기

- data source connections 열기

   Window > Show view > other > data로검색(Data Source Explorer) > open

  (콘솔창에 data source explorer 창이 뜸 - 마우스 우클릭으로 connect // disconnect )

 

Databae Connections > 마우스우클릭 > New > Oracle > 검색창 옆 톱니바퀴 >

Database 에서 Name/Type Oracle Thin Driver - System Version 11 선택

JAR List > ojdbc14.jar 삭제 > Add JAR/Zip > ojdbc6.jar > OK

경로 수정하지 않았다면 C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

Properties > General >

Database Instance Service Name > xe

Host > localhost

user name > hr

password > hr

save password 체크

프로젝트내에 sql 파일 작성

프로젝트 마우스 우클릭 > new > other > sql development 

> sql file > file name : 원하는sql파일명 > 

Database server type : Oracle_11

Connection profile name : new oracle

database name : xe

 

 

 

java jdbc 연동

1. jdbc 드라이버 동적 로딩 

 - Class.forName("orcle.jdbc.driver.OracleDriver");

2. 오류 

 1) 컴파일 오류

 2) 런타임 오류

 

  jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭

    try {

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

    } catch (ClassNotFoundException e) {

        e.printStackTrace();

    } finally { //이부분을 추가

                        

    }

이상태는 오류

라이브러리 불러오기

자바프로그젝트에서 마우스 우클릭 > Build Path > Configure Build Path > Libraries > Add External JARs > 

C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar 선택 > 적용


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

                        

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

String user = "hr";

String password = "hr";

                        

//2. 데이터베이스 연결객체( Connection ) 생성

Connection conn = DriverManager.getConnection(url, user, password);


jdbc 경로

data source explorer > database connections > New Oracle(Oracle v.~~~~~~~~~) 마우스 우클릭 > properties > Connection URL 복사

 

처리 상태 확인

Connection conn = null;

PreparedStatement pst = null;

try {

    //1. jdbc 드라이버 동적 로딩

    //jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭Class.forName("oracle.jdbc.driver.OracleDriver");

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

    

    //2. 데이터베이스 연결객체( Connection ) 생성

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

    String user = "hr";

    String password = "hr";

    conn = DriverManager.getConnection(url, user, password);

                        

    //3. sql 구문 준비 객체( PreparedStatement ) 생성

    //studentSeq.nextval : 시퀀스

    //? : 바인드 변수

    String sql = "";

    sql = " INSERT INTO student VALUES (studentSeq.nextval, ?, ?, ?, ?) ";

    pst = conn.prepareStatement(sql);

                        

    //4. 바인드 변수를 채운다.(바인드는 1부터 시작)

    pst.setString(1,name);

    pst.setInt(2, age);

    pst.setString(3, phone);

    pst.setString(4, email);

                        

    //5. sql문 실행하여 결과 처리

    //executeUpdate : insert, delete, update ( 테이블의 변화가 생길때 사용되는 명령 )

    int cnt = pst.executeUpdate();

    if(cnt > 0) {

        System.out.println("학생추가 성공");

    } else {

        System.out.println("학생추가 실패");

    }

//} catch (ClassNotFoundException e) {

} catch (Exception e) {

    e.printStackTrace();

} finally {

    try {

        pst.close();

        conn.close();

    } catch (SQLException e) {

        e.printStackTrace();

    }

}


 

SELECT 구문에서 사용법

try {

    //1. jdbc 드라이버 동적 로딩

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

                        

    //2. db 연결

    //String url = "jdbc:oracle:thin:@localhost:1521:xe";

    //String user = "hr";

    //String password = "hr";

    conn = DriverManager.getConnection(url, user, password);

                        

    //sql = " SELECT ROWNUM, A.* FROM student A";

    //3. sql 구문 준비 객체( PreparedStatement ) 생성

    pst = conn.prepareStatement(sql);

                        

    //4. sql문을 실행하여 결과 처리

    ResultSet rs = pst.executeQuery();

    while(rs.next()) {

        int row = rs.getRow();

        //student_num = rs.getInt("student_num");

        student_num = rs.getInt(2);

        //name = rs.getString("name");

        name = rs.getString(3);

        //age = rs.getInt("age");

        age = rs.getInt(4);

        //phone = rs.getString("phone");

        phone = rs.getString(5);

        //email = rs.getString("email");

        email = rs.getString(6);

                            

        System.out.println("--------------------------------------------------");

        System.out.print("num :"+row+"\t");

        System.out.print("학생번호 : "+student_num+"\t");

        System.out.print("학생이름 : "+name+"\t");

        System.out.print("학생나이 : "+age+"\t");

        System.out.print("학생전화번호 : "+phone+"\t");

        System.out.print("학생이메일 : "+email);

        System.out.println();

    }

} catch (Exception e) {

    e.printStackTrace();

} finally {

    try {

        pst.close();

        conn.close();

    } catch (SQLException e) {

        e.printStackTrace();

    }

}

 

INSERT UPDATE DELETE 문

try {

    //1. jdbc 드라이버 동적 로딩

    //jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭

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

                        

    //2. 데이터베이스 연결객체( Connection ) 생성

    //String url = "jdbc:oracle:thin:@localhost:1521:xe";

    //String user = "hr";

    //String password = "hr";

    conn = DriverManager.getConnection(url, user, password);

                        

    //3. sql 구문 준비 객체( PreparedStatement ) 생성

    //studentSeq.nextval : 시퀀스

    //? : 바인드 변수

    sql = " INSERT INTO student VALUES (studentSeq.nextval, ?, ?, ?, ?) ";

    pst = conn.prepareStatement(sql);

                        

    //4. 바인드 변수를 채운다.

    pst.setString(1,name);

    pst.setInt(2, age);

    pst.setString(3, phone);

    pst.setString(4, email);

                        

    //5. sql문 실행하여 결과 처리

    //executeUpdate : insert, delete, update ( 테이블의 변화가 생길때 사용되는 명령 )

    int cnt = pst.executeUpdate();

    if(cnt > 0) {

        System.out.println("학생추가 성공");

    } else {

        System.out.println("학생추가 실패");

    }

//} catch (ClassNotFoundException e) {

} catch (Exception e) {

    e.printStackTrace();

} finally {

    try {

        pst.close();

        conn.close();

    } catch (SQLException e) {

        e.printStackTrace();

    }

}




추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 113건 2 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기