본문 바로가기

JSP

221011_JSP_JDBC_국비_기초

JDBC(Java Database Connecitivity)

  • 자바프로그램에서 데이터베이스와 연결해 데이터베이스관련 작업을 할 수 있도록 해주는 자바 프로그래밍 인터페이스를 위한 API규격
  • Driver, DriverManger, Connection, Statement, ProperedStatement, ResultSet, DataSource등 여러 클래스와 인터페이스로 구성된 패키지 java.sql.*, javax.sql.*로 구성
  • 표준 API제공
    - 데이터베이스를 연결해 테이블 형태의 자료 참조
    - SQL문 질의
    - SQL문 결과 처리
  • JDBC  역할
    DBMS의 종류에 상관없이 쉽게 SQL문을 수행하고 그 결과를 처리하도록 설계
    → 한번 JDBC로 작성된 프로그램은 Oracle, MySql, SqlServer,DB2등 어떤 DB를 사용하던지 소스의 수정을 최소화해 바로 실행가능
  • JDBC 프로그래밍 절차
    1. JDBC 드라이버 로드 
        Class.forName("oracle.jdbc.driver.OracleDriver");
          → 드라이버 이름을 호출하여 DriverManager에 Dirver가 등록되고 Connection을 얻어 사용가능
         - API를 사용해 로드한 클래스를 런타임 응용프로그램에 동적으로 바이딩 됨
         - 동적으로 JDBC 드라이브 클래스를 로드하는것으로 지정한 드라이버 클래스가 객체화되고 
           동시에 자동적으로 DriverManger.registerDriver()을 호출해 DriverManager에서 관리하는 드라이버 리스트에
           등록해 이루어짐
    2. 데이터 베이스 연결 
        DriverManger.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "scott","tiger");
    3. SQL을 위한 Statement 객체 생성
        Statement stmt = conn.createStatement();
    4. SQL 문장 실행
        String sql = "select * from emp";
        ResultSet  result = stmt.executeQuery(sql);
    5. 질의 결과 ResultSet 처리
       while(result.next()){                           →result는 테이블형태임
            String col1= result.getString(1);
            String col2= result.getString(2);
            int col3 = result.getInt(3); }
    6. JDBC 객체 연결 해제 
        result.close();
        stmt.close();
        conn.close();
  • JDBC 기본클래스      
패키지 클래스 클래스용도 메소드
java.lang Class 지정된 JDBC 드라이버를
런타임시 메모리에 로드
forName()
DriverManager 여러 JDBC를 관리하는
클래스로 데이터베이스에
접속해 연결 객체 반환
getConnection()
java.sql Connection 특정한 데이터베이스
연결상태를 표현하는 클래스로 질의할 문장 객체 반환
createStatement()
Statement 데이터베이스에 SQL질의
문장을 질의하여 그 결과 집합(ResultSet) 객체 반환
executeQuery()
ResultSet 질의 결과의 자료 저장 next();
getString();
getInt();