Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- Callback
- 알고리즘
- Promise
- 다이나믹프로그래밍
- Service
- 자바스크립트
- Spring Framework
- 웹
- was
- IOC
- DI
- 백준
- 면접
- Spring
- servlet
- 부스터2기
- request
- Spring MVC
- 기술면접
- DP
- 서블릿
- JSP
- 파이썬
- controller
- 비동기
- 부스트코스
- response
- 다이나믹 프로그래밍
- 네이버
Archives
- Today
- Total
Sh개발일기
JDBC란? 본문
학습 목표
- JDBC가 무엇인지 이해한다.
핵심 개념
- JDBC
- DriverManager
- Connection
- Statement
- ResultSet
JDBC (Java DataBase Connectivity)의 정의
- 자바를 이용한 데이터베이스 접속과 SQL문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약
- 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API
- SQL과 프로그래밍 언어의 통합 접근 중 한 형태
자바는 표준 인터페이스인 JDBC API를 제공한다. 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC인터페이스를 구현한 드라이버를 제공한다.
JDBC 환경 구성
- JDK 설치
- JDBC드라이버 설치 - Maven에 다음과 같은 의존성을 추가
JDBC를 이용한 프로그래밍 방법
- 1단계 : import java.sql.*;
- 2단계 : 드라이버를 로드한다 -> 반드시 선행되어야 함
- 3단계 : Connection 객체를 생성한다. -> DB에 접속
- 4단계 : Statement 객체를 생성 및 질의 수행 -> select * from ~ 등 쿼리문 생성 및 실행
- 5단계 : SQL문에 결과물이 있다면, ResultSet객체를 생성한다.
- 6단계 : 모든 객체를 닫는다. -> 열었던 반대 순서로 닫는다.
JDBC 클래스의 생성 관계
JDBC사용 - 단계별 설명
1. import
2. 드라이버 로드
- forName 메소드 - 객체를 메모리에 올려줌
- 안에 들어가는 String은 어떤 db벤더를 이용하느냐에 따라 달라진다.
3. Connection 얻기
- dburl은 어떤 db를 사용하느냐에 따라 달라진다.
4. Statement 생성
5. 질의 수행
6. ResultSet으로 결과 받기
7. close - > 연 순서와 반대로
JDBC 사용 예제
코드가 복잡해보이지만, 사실 위에서 배운 단계들을 그대로 따르고 있음을 볼 수 있다. JDBC를 이용하는 방법은 각각의 단계와 사용법이 정해져 있으므로 이를 사용하기 위해선 정해진 규칙을 지켜가며 코드를 작성하면 된다. 즉, 세세한 코드는 사용에 따라 다를 수 있으나 전체적인 코드는 어디서 사용하던 비슷한 형태를 띄게 된다는 것이다.
이러한 반복되는 절차와 코드를 손쉽게 처리해주는것이 framework의 기능 중 하나이다. 우리는 JDBC의 동작원리를 이해하고, 실제 구현은 spring framework를 이용하여 구현 할 것이다. 그러나 동작원리를 알고 쓰는것과 모르고 쓰는것은 매우 큰 차이가 있으므로 JDBC의 근본적인 동작원리를 잘 익혀두는것은 중요한 일이다.
'BoostCourse' 카테고리의 다른 글
Ajax 응답 처리와 비동기 (0) | 2020.03.01 |
---|---|
Web API (0) | 2020.02.25 |
DBMS(DataBase Management System) (0) | 2020.02.21 |
EL(Expression Language) (0) | 2020.02.21 |
스코프(Scope) (0) | 2020.02.19 |