JDBC : Java DataBase Connectivity
자바에서 제공하는 Java database connectivity api 는
자바에서 DataBase 에 연결하여 프로그래밍을 하기 위해 사용되는 api 이다.
오라클 DB와 MySQL 과 같이 DB의 종류가 상당히 많은데,
서로 다른 종류의 DB의 차이에 따라 java와 database 를 연결하는 방법을 다르게 해야 한다.
그럴려면 어플리케이션 제작자나 개발자들은 프로그램을 제작하기 전부터 연결하는 방법에 대해 모색해야 하는데,
이 앱 제작자나 개발자들이 db와 연결할 때 연결하는 방법까지 알아야 할 필요가 있을까? 🤔
그러한 어플리케이션 제작자, 개발자들로부터 구제해주는 것이 바로 이 JDBC이다.
jdbc 의 driver 를 통해 이러한 문제를 해결할 수 있다.
JDBC api는 오라클DB와 같은 DB를 연결하기 위한 도구들을
어플리케이션 만드는 사용자들이 연결하는 도구를 직접 코드를 쓸 필요가 없게끔 해준다.
driver를 사용하면 어떠한 종류의 db이던 db가 자바라는 틀에 끼워맞춰지기 때문에 연결이 잘 되게 될 것이다.
작성 하는 코드는 JDBC 에서, 실제 구동 코드는 jdbc용 driver가 각각의 역할을 맡게 된다.
다른 언어를 공부할 때에도 마찬가지이겠지만 어떤 언어와 db를 연결하기 위해서 driver라는 존재가 필요하다.
조금 더 개발자스러운 말로 표현하면 JDBC Driver 는 각 DBMS에 알맞는 클라이언트이다.
JDBC 으로 코딩하는 과정
0. Driver 준비하기
- Driver를 사용하기 위해서는 외부 참조 파일이 필요한데, 이번 포스팅에서는 여기까지 다룰 예정이다.
1. Driver 로드하기
- Java 에서는 Driver 를 연결을 다루기 위한 객체들이 존재한다.
driver를 로드하기 전에는 이 객체들은 그저 빈 값으로 존재할 뿐이다.
첫번째로는 실질적인 구동장치인 driver를 로드한다.
2. 연결 생성하기
- jdbc 를 로드를 했으면 driver 하고, java의 연결 객체하고 연결을 해주면 된다.
3. 문장 실행하기
- sql 문장들을 작성하고 실행한다.
4. 결과집합 사용하기
- 결과들은 어떠한 집합으로 존재하게 된다.
우리는 sql문을 이용하여 값을 추출하게 되는데 그 결과값들이 나타나게 된다.
이번 포스팅에서는 Java 에서 Driver 를 준비하는 과정에 대해 풀어보자면
생성하고자 하는 Java Project 를 생성하고, 자바 프로젝트를 우클릭한다.
Build Path -> Configure Build Path 클릭
이러한 상태가 되는데 오른쪽 Add External JARs 를 눌러서 외부 참조 파일(JDBC driver)를 가져와야 한다.
오른쪽 버튼들을 활성화 하기 위해서는 Modulepath 를 클릭
Add External JARs 를 클릭
경로가 잘 보이시는가?
sqldeveloper 에서는 jdbc 폴더에 lib 폴더를 들어가면 이렇게 ojdbc8.jar 파일이 있는데 이걸 참조해오거나
https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html
이 링크에서 사용하는 jdk 버전에 맞게 드라이버를 다운받아서 설치하면 될 것이다.
뭘 다운받아야 할지 모르겠으면 그냥 최신버전 다운받는것도 좋은 방법인 것 같다. 😋
음 읽어보니까 ojdbc8.jar 를 다운로드 받으면 될 것 같다.
JDK8 버전 쓰시거나 JDK11 버전 쓰시면 ojdbc8.jar 로 ㄱㄱ
이렇게 외부 jdbc 파일 참조 해놨으면 apply and close
그렇게 되면 Referenced Libraries 가 생기게 된다.
(dataFile 은 내가 예전에 쓰고 안쓰던 자바프로젝트 파일 안지우고
그냥 냅둬서 남아있는 빈파일이다 상관안하셔도 됨)
여기까지 되면 jdbc api 를 참조하는 것 까지 완료가 된 것이다.
'Java (국비지원 당시 공부했던 글) > Java 프로그래밍' 카테고리의 다른 글
[자바] - 백준 10718, 10171, 10172번 풀이 (0) | 2022.06.06 |
---|---|
[자바] - 백준 2557번 문제 풀이, BufferedWriter flush() 사용 이유 (0) | 2022.06.05 |
[자바] 무작위 숫자 생성 (2) - Random 클래스 (0) | 2022.04.26 |
[자바] 무작위 숫자 생성 (1) - Math.random() (0) | 2022.04.22 |
제어구조(control structure) (0) | 2022.04.15 |