NOW OR NEVER

[JAVA] JDBC(Java DataBase Connection Programming) 본문

Back-End/JAVA

[JAVA] JDBC(Java DataBase Connection Programming)

LAURA 2022. 4. 15. 16:49
반응형

JDBC(Java DataBase Connection Programming)

  • 자바가 데이터베이스에 연결하여 데이터베이스 명령어를 실행하는 프로그램
  • 프로그램에서 자동으로 데이터베이스에 연결하여 위에서 만든 데이터 베이스 명령어 sql을 동작하도록 함
  • 순서
    • 미리 준비 : oracle이 설치된 폴더에서 jdbc 드라이버를 복사하여 java 설치 폴더로 새로 경로 지정
      • 1. ojdbc 복사(아래 둘 중 하나의 경로에서)
        • 시스템 환경 변수 편집 - 고급 - 환경변수 - 시스템 변수 - Path - 편집- product\버전이름dbhome 해당 주소 복사- 탐색기에 붙여넣기-jdbc폴더ojdbc 복사
        • C:\app\User\product\21c\dbhomeXE\jdbc\lib
      • 2. 복사한 ojdbc 위치 선정
        • C:\Program Files\Eclipse Adoptium\jdk-11.0.14.101-hotspot\li에 ojdbc 붙여넣기
        • eclips 프로젝트이름에서 마우스 오른쪽 - Properties - Java Build Path - Libraries - Claspath - Add External JARS - ojdbc8,jar 경로 설정
      • oracle db를 사용할 자바 프로젝트에서 마우스 오른쪽 키 눌러서 class path에 ojdbc 경로 지정
    • 1. jdbc 드라이버를 메모리로 로드한다.
      • Class.forName("oravle.jdbc.driver.OracleDriver");
    • 2. db 서버에 연결한다.
      • Connection 객체이름 = DriverManager.getConnection("jdbc:oracle:thin:@ip주소:port번호(1521 or XE)","사용자계정","비밀번호");
    • 3. 데이터베이스 명령을 실행하기 위한 객체 생성
      • Statement 객체이름 = conn.createStatement(sql명령어들은변수);
      • PreparedStatement 객체이름 = conn.prepareStatement(sql명령어들은변수);
        • sql명령어 작성 시 입력값이 들어가는 자리에 ?로 대신할 수 있다
          • ex)String sql = "insert into room(r_no, r_type, fee)"+ 
            "values(?,?,?)";
        • ?가 있는 sql를 실행시키기 위해서는 PreparedStatement를 이용
        • sql명령어의 ?의 순서대로 값을 설정합니다.
          • 자료형에 따라 문자열의 경우 PreparedStatement객체.setString(물음표위치,값), 정수의 경우PreparedStatement객체.setInt(물음표위치,값)
    • 4. 데이터베이스 명령 실행
      • statement객체.executeUpdate(데이터베이스 명령어 담은 변수이름);
        • executeUpdate : 데이터베이스에 변경이 있는 명령을 실행할 때 사용, 성공적으로 명령을 수행한 레코드 수를 반환한다.
        • executeQuery : 데이터베이스로부터 읽어오는 명령을 실행할 때 사용
      • preparedStatement객체.executeUpdate();
        • preparedStatement 실행시에 sql을 매개변수로 전달하지 않는다. sql을매개변수로 전달하면 ?가 결정되지 않은채로 sql을 실행하려 한다.
    • 5. 사용이 끝난 자원 닫기
      • Statement객체.close();
      • preparedStatement객체.close();
      • Connection객체.close();

Tips

  • jdbc 프로그래밍 중 IO 오류 해결 방법

'Back-End > JAVA' 카테고리의 다른 글

[Spring] Spring boot로 Spring project 생성  (0) 2022.06.02
[Spring] 스프링 MVC 기초  (0) 2022.05.27
[JAVA] Network Programming  (0) 2022.04.14
[JAVA] Thread  (0) 2022.04.13
[JAVA] GUI(Graphical User Interface)  (0) 2022.04.12
Comments