Java Study

JDBC 라이브러리

Z00_HWAN_99 2024. 7. 7. 19:03
728x90
반응형

JDBC 라이브러리

  • 자바는 데이터베이스(DB)와 연결해서 데이터 입출력 작업을 할 수 있도록 JDBC 라이브러리(java.sql 패키지)를 제공.
  • JDBC는 데이터베이스 관리시스템(DBMS)의 종류와 상관없이 동일하게 사용할 수 있는 클래스와 인터페이스로 구성.

JDBC Driver

  • JDBC 인터페이스를 구현한 것으로, DBMS마다 별도로 다운로드 받아 사용.
  • DriverManager 클래스 : JDBC Driver를 관리하며, DB와 연결해서 Connection구현 객체 생성.
  • Connection 인터페이스 : Statement, PreparedStatement, Callablestatement 구현 객체를 생성하며, 트랜잭션 처리 및 DB 연결을 끊을 때 사용.
  • Statement 인터페이스 : SQL의 DDL과 DML 실행 시 사용.
  • PreparedStatement : SQL의 DDL, DML 문 실행 시 사용. 매개변수환된 SQL문을 써 편리성과 보안성 유리.
  • Callablestatement : DB에 저장된 프로시저와 함수를 호출.
    (프로시저 : DB에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것)
  • ResultSet : DB에서 가져온 데이터를 읽음.

INSERT문

  • 테이블에 새로운 정보를 저장하는 INSERT문 실행.
  • INSERT문을 String 타입 변수 sql에 문자열로 대입.
  • 매개변수화된 SQL문을 실행하기 위해 Connection의 prepareStatement()메서드로부터 PrepareStatement얻음.
  • 값을 지정한 후 execute.Update() 메서드를 호출하며 SQL문이 실행되면서 테이블에 1개의 저장.
  • close() 메서드를 호출하면 PreparedStatement가 사용했던 메모리 해제.

UPDATE 문

  • JDBC를 이용해서 UPDATE 문을 실행.
  • prepareStatement() 메서드로부터 PreparedStatement를 얼고, ?에 해당하는 값을 지정.
  • executeUpdate() 메서드를 호출. 수정된 행의 수가 리턴.

DELETE 문

  • JDBC를 이용해서 DELETE 문을 실행.
  • 매개변수화된 DELETE 문을 String 타입 변수 sql에 대입.
  • prepareStatement() 메서드로부터 PreparedStatement를 얻고 ?에 값을 지정한 후, executeUpdate로 SQL문을 실행.

ResultSet 구조

  • SELECT 문에 기술된 컬럼으로 구성된 행(row)의 집합.
  • 커서(cursor)가 있는 행의 데이터만 읽을 수 있음.
  • first 행을 읽으려면 next() 메서드로 커서 이동.

데이터 행 읽기

  • 커서가 있는 데이터 행에서 각 컬럼의 값은 Getter 메서드로 읽음.
  • SELECT 문에 연산식이나 함수 호출이 포함되어 있다면 컬럼 이름 대신에 컬럼 순번으로 읽어야 함.

사용자 정보 읽기

  • 사용자 정보를 가져오는 SELECT 문. prepareStatement() 메소드로부터 PreparedStatement를 얻고, ?에 값을 지정.
  • executeQuery() 메서드로 SELECT 문을 실행해서 ResultSet을 얻음.
  • if 문을 이용해서 next() 메서드사 true를 리턴할 경우에는 데이터 행을 User 객체에 저장하고 출력.

https://github.com/bottomsUp-99?tab=repositories

 

bottomsUp-99 - Overview

Backend Developer. bottomsUp-99 has 10 repositories available. Follow their code on GitHub.

github.com

 

728x90
반응형

'Java Study' 카테고리의 다른 글

Lamda(람다식)  (0) 2024.07.12
제네릭(Generic)이란?  (0) 2024.07.10
예외 처리(Exception Handling)  (1) 2024.07.07
인터페이스(Interface)  (0) 2024.07.02
추상화  (3) 2024.07.01