티스토리 뷰
Java Database Connectivity
JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
내가 어떤 프로그램을 만들었고 데이터베이스를 사용하는 상황이다.
데이터베이스에도 여러 종류가있다 오라클 디비, MSSQL 등등 엄청 많다.
디비 회사들은 디비 API를 제공하고 개발자들은 제공되는 디비 API를 갖고 내 프로그램과 디비를 연동할것이다.
이렇게 오라클에서 제공하는 디비 API를 이용해 코드를 완성했다.
그런데 만약 오라클 디비에서 갑자기 MSSQL으로 넘어갈일이 생겼다면 (일반적으로 거의 없는 일일테지만) 내가 작성한 코드중 엄청 많은 부분들이 바뀌어야 할것이다.
회사들이 제공 하는 디비 API가 다 다르기 때문이다. (함수들의 이름, 사용법 등)
JDBC는 이런 문제를 해결한다.
JDBC는 디비의 API와 프로그램의 중간다리 역활을 한다.
디비 API들의 다른점들을 단일화시켜 개발자들이 JDBC만 사용해도 되도록 하는 것이다.
JDBC에서 다른 디비들의 API를 단일화하기 때문에 개발자들은 각 디비들의 API의 내용은 알필요가 없다.
물론 디비 회사들이 제공하는 각 디비의 JDBC 드라이버는 필요하다.
예를들어 오라클 디비를 사용한다면 오라클에서 제공하는 JDBC 드라이버가 필요하다.
사실상 JDBC는 비어있고, 실제 디비 구동 코드는 JDBC 드라이버에 있는 것이다.
프로그램 -- JDBC -- DB회사에서 제공하는 JDBC 드라이버 -- DB
우선 크게 어떤식으로 동작하는지 살펴보자.
1. 일단 JDBC 드라이버에 모든 코드들이 있기 때문에 드라이버를 로드해야 할 것이다.
Class.forName("oracle.jdbc.driver.OracleDriver");
이렇게 하면 메모리에 JDBC 드라이버가 로드된 상태일 것이다.
2. 연결하고 연결 객체 얻음.
Connection con = DriverManager.getConnection();
3. 실행 도구 객체
Statement st = con.createStatement();
4. 쿼리 실행하고, 결과 객체 얻음
ResultSet rs = st.executeQuery(sql);
대충 이런식으로 진행된다.
보면 객체를 만들때 new 연산자를 사용하지 않는다.
이유는 드라이버를 로드해야 연결할수 있으므로 Connection 객체는 DriverManager가 생성된 이후에야 얻을수 있다.
Statement 객체 또한 연결 (Connection)이 이루어진 이후에야 얻을수 있을 것이다.
마지막으로 실행 객체 (ResultSet) 또한 실행 (Statement) 이후에야 얻을수 있다.
따라서 new로 마음대로 객체들을 만드는 것에 의미가 없기 때문에 이렇게 순차적으로 객체들이 만들어질수 있도록 되어 있는 것이다.
'노트' 카테고리의 다른 글
dart) List.filled, List.generate 차이점 (0) | 2022.10.22 |
---|---|
JDBC 기본 흐름 (0) | 2022.07.05 |
Java의 인터페이스 (0) | 2022.06.06 |
java의 객체 관련 정리 (0) | 2022.06.01 |
c++ vector의 [] operator 와 at (0) | 2022.05.10 |
- Total
- Today
- Yesterday
- Spring
- graph
- Python
- C++
- MVC
- 자료구조
- 조합
- 이분탐색
- floyd warshall
- Kruskal
- DP
- back tracking
- db
- permutation
- Stack
- Tree
- BFS
- Dijkstra
- Brute Force
- 재귀
- binary search
- C
- greedy
- Unity
- dfs
- Implementation
- CSS
- two pointer
- recursion
- priority queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |