JSP + Servlet | JDBC

파과·2022년 7월 23일
0

JSP + Servlet

목록 보기
33/33

JDBC를 이용해 데이터베이스에 연결하는 절차

순서절차사용되는 interface 혹은 class
1JDBC 드라이버 로드          DriverManager
2DB와 연결Connection
3SQL문 실행Statement
4DB와 연결 끊음ResultSet

핵심 인터페이스

interface역할얻는 방법
Connection데이터베이스와 연결DriverManager.getConnection()
StatementSQL 질의, 갱신 실행connection.createStatement()
ResultSet결과물statement.executeQuery()

이렇게 얻어진 객체는 클래스로 선언된 변수에 저장해두지 않고 인터페이스로 선언한 변수에 넣고 사용한다. 직접 개발자가 생성하지 않은 객체는 인터페이스를 통해 접근하여 원하는 작업을 하는 것이다.

JDBC로 DB의 데이터 조작하기

  1. 사용할 JDBC 드라이버를 프로그램 시작할 때 로딩한다. (odjdbcX.jar)
    1-1. OracleDriver 객체가 생성된다. (자바에서 드라이버를 관리하는 객체인 드라이버 매니저에 오라클 드라이버가 등록된다) → DriverManager클래스로 DB에 접속할 수 있게 된다.
  2. DriverManager의 static 메소드인 getConnection()으로 Connection 객체를 얻어온다. Connection은 인터페이스기 때문에 일반적인 객체 생성처럼 new 연산자를 사용하지 않고 다른 객체의 메소드로부터 객체를 얻어온다.
    2-1. Connection 객체를 통해 DB 접근이 가능해진다.
  3. 생성한 Connection 객체로 접근해서 createStatement()를 호출해 Statement객체를 생성한다.
  4. Statement객체의 메소드를 사용해 쿼리문을 수행한다.
    4-1. 조회와 같이 결과가 있으면 executeQuery()
    4-2. 삽입, 수정, 삭제와 같이 변화가 있지만 결과가 없으면 executeUpdate() 사용
  5. 위의 메소드를 실행한 결과값은 여러 개의 행으로 반환되는데, 이를 ResultSet 클래스로 받아 처리한다.
    5-1. ResultSet의 next(), previous(), first(), last()를 사용해 행 단위로 이동할 수 있다. (T, F 출력)
    5-2. 반복문과 getXXX()를 사용해 ResultSet객체의 값을 행 단위로 얻어올 수 있다.
  6. 사용 후에는 close()로 닫아줘야 한다.

JDBC로 DB에 데이터 저장하기

위에서는 sql문을 컬럼별 변수를 넣어 작성해 executeUpdate()의 매개변수로 넣는 방법을 사용하였는데, 이는 쿼리문을 복잡하게 작성해야 하는 불편이 있다. 따라서 간단히 작성할 수 있는 PreparedStatement 인터페이스를 사용한다.

  1. Connection 인터페이스의 객체를 생성하고 preparedStatement() 메소드를 호출해 PreparedStatement 객체를 얻는다.
    1-1.이때 인자로 사용되는 sql문은 각 컬럼에 추가할 값을 직접 지정하지 않고 ?로 표시한다. ?는 바인드 변수라고 한다.
  2. ?로 지정된 변수에 PreparedStatement.setXXX()메소드로 값을 할당해준다.
  3. executeUpdate()로 갱신한다.
  4. close()로 닫는다.

0개의 댓글