본문 바로가기

spring

JDBC

서버와 DB의 연결

 

DB 교체가 발생한다면?

  • 데이터베이스마다 커넥션 연결 방법과 SQL 전달 방법, 결과 응답을 받는 방법이 모두 다름
  • 이러한 방식은 데이터베이스 변경에 매우 취약하다는 문제가 있음
  • 이러한 방식을 해결할 수 있는 것 ≫ 자바 표준 JDBC

 

JDBC
  • Java Database Connectivity
  • 자바에서 DB 프로그래밍을 하기 위해 사용되는 API (표준 인터페이스)
  • 데이터베이스에 맞는 JDBC 드라이버를 사용

 

JDBC 표준 인터페이스
  • 3가지 기능을 표준 인터페이스로 정의하여 제공
  • 인터페이스를 구현하여 제공하는 라이브러리 = JDBC Driver
  • (Oracle DB에 접근할 수 있는 라이브러리 = Oracle JDBC Driver)

 

 

** JDBC 이용하기!

환경 설정
  • build.gradle 파일에 JDBC와 DB Driver 관련 라이브러리 추가
    • implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    • runtimeOnly 'mysql:mysql-connector-java'
  • rescources/application.properties 파일에 데이터베이스 접속 정보 추가
    • spring.datasource.url=jdbc:mysql://localhost:3306/board
    • spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    • spring.datasource.username=username
    • spring.datasource.password=password

 

테스트 테이블 (Post)
  • 여러 개의 게시글(Post)로 이루어진 게시판(Board)를 개발
  • Post 테이블에 필수적으로 포함되어야 하는 컬럼
    • id / bigint / 기본 키
    • title / varchar(255) / 제목
    • content / varchar(255) / 본문

 

Entity 생성
  • Post 테이블 그대로 Entity 생성 (getter/setter 생략)

  • @Table은 매핑할 테이블을 지정
  • @Id는 기본키(PK) 지정을 의미하고 @GeneratedValue는 기본키 값에 대한 생성 전략을 지정

 

JDBC API로 게시글 저장 구현
  1. Connection 획득
  2. Statement 준비 / 실행
  3. ResultSet 생성
  4. 예외처리
  5. 자원 반납

 

 

 

 

'spring' 카테고리의 다른 글

ORM  (0) 2024.09.13
JdbcTemplate  (0) 2024.09.13
Entity / DTO / DAO / Repository  (0) 2024.09.13
PUT, DELETE API  (0) 2024.09.13
POST API  (0) 2024.09.13