본문 바로가기
  • soobinhand의 기술 블로그
Computer Science/JAVA

[JAVA] JDBC

by soobinhand 2021. 10. 29.
728x90

JDBC

  • Java DataBase Connectivity
  • 데이터베이스에 비종속적인 표준 자바 API입니다.
  • 다양한 데이터베이스를 동일한 인터페이스로 사용할 수 있도록합니다.
  • 각종 데이터베이스는 JDBC Driver를 통해서 연결하고 사용합니다.
  • MySQL을 사용하다가 oracle을 사용하면 클라이언트 수정을 해야함 -> 귀찮 -> ODBC, JDBC 개발 배경이 됨

 

사용 방법

  • 데이터베이스에 연결합니다.
    • DriverManager.getConnection() 함수를 사용해서 데이터베이스에 연결합니다. - Connection 인터페이스 객체 반환
    • 데이터베이스 URL이 필요합니다. "jdbc:mysql://localhost:3306/" + db_name
    • JDBC 드라이버가 4.0 이상이면 자동으로 사용가능합니다.
    • 4.0 이전이라면 Class.forName() 메소드와 드라이버 클래스 이름을 이용해서 드라이버를 사용할 수 있도록 만들어야합니다.
  • SQL 쿼리 작성 후 데이터베이스에서 실행합니다.
  • 결과로 반환되는 데이터를 수정하거나 화면에 출력합니다.

 

Connection 인터페이스

  • 자바 응용 프로그램과 데이터베이스를 연결한 세션 유지 및 쿼리 실행
  • 쿼리를 실행시킬 수 있는 Statement나 PreparedStatement 등을 생성하는 Factory입니다.
  • createStatement()
    • SQL 쿼리를 실행시킬 수 있는 Statement 인터페이스 객체 생성
  • close()
    • 데이터베이스 연결을 끊습니다.

 

Statement 인터페이스

  • SQL 쿼리를 데이터베이스에서 실행합니다.
  • SELECT 쿼리를 실행시킬 때 ResultSet 인터페이스 객체를 생성하는 Factory입니다.
  • executeQuery(String sql)
    • SELECT 쿼리를 실행하고 ResultSet 객체를 반환합니다.
  • executeUpdate(String sql)
    • 주어진 SQL쿼리를 실행합니다.
    • create, drop, insert, update, delete 등 실행 가능합니다.

 

ResultSet 인터페이스

  • 테이블의 한 행을 가리키는 커서입니다.
  • 커서는 첫 번째 행 이전을 가리킵니다.
    • next()를 이용해서 데이터가 실제 있는지 확인해야 합니다.
  • next()
    • 현재 위치에서 커서를 다음 행으로 이동시킵니다. (false/true 반환)
  • getInt(int columnIndex), getInt(String columnName)
    • 주어진 컬럼의 데이터를 정수 형태로 반환합니다.
  • getString(int columnIndex), getString(String columnName)
    • 주어진 컬럼의 데이터를 문자열 형태로 반환합니다.
728x90

'Computer Science > JAVA' 카테고리의 다른 글

[JAVA] StringTokenizer  (0) 2021.11.14
[JAVA] Priority Queue  (0) 2021.10.30
[JAVA] format 함수  (0) 2021.10.24
[JAVA] toBinaryString 함수  (0) 2021.10.24
[JAVA] 생성자  (0) 2021.10.16

댓글