서버와 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로 게시글 저장 구현
- Connection 획득
- Statement 준비 / 실행
- ResultSet 생성
- 예외처리
- 자원 반납
'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 |