[JAVA] JDBC

진주·2022년 2월 7일
0

JAVA

목록 보기
4/6

JDBC

1) Java Database Connectivity

2) 자바에서 제공하는 데이터베이스와 연결하여 데이터를 주고받을 수 있도록 돕는 인터페이스

3) 자바 언어로 다양한 종류의 관계형 데이터베이스(RDB)에 접속하고, SQL문을 수행하여 처리하고자 할 때 데이터베이스를 조작하는 표준 SQL 인터페이스 API

  • 단점 : DB에서 정보를 가져올 대마다 DB Connection, Disconnection을 해야하고, 서버 과부하 및 속도 저하의 문제가 존재한다.

JDBC의 역할

Q. JDBC가 생긴 이유?
A. JDBC API가 없었던 때에는, 데이터 베이스 종류에따라 각각 다른 SQL문을 사용했다
그 결과, DB의 종류에 따라 SQL문의 작성 방법이 너무 차이가 나 구현이 불편했다.
메서드나 전역변수 등을 통합하는 문법으로 통일시킨 것이 JDBC이다.

[역할]

  • Java 코드에서 DB서버에 접속
  • SQL문을 구성하고 DB서버에서 실행
  • DB서버에서 처리한 결과를 가져오기
  • DB의 정보를 가져오기

JDBC 드라이버

1) DBMS와 통신을 담당하는 자바 클래스
2) DBMS별로 알맞는 JDBC 드라이버가 필요하다
3) 로딩 코드 : Class.forName("JDBC드라이버 이름");

  • 오라클 : oracle.jdbc.driver.OracleDriver
  • Mysql : com.mysql.cj.jdbc.Driver

JDBC URL

1) DBMS와 연결을 위한 식별 값
2) JDBC 드라이버에 따라 형식이 다르다
3) 구성 : jdbc:[DBMS]:[데이터베이스식별자]

Class.forName() 동작 원리

Q1. Class.forName() 메소드에 Driver 클래스 위치를 넘겨줄 뿐, 리턴값을 받는 등의 아무런 동작이 없다.
Q2. 이후 DriverManager.getConnection()을 하면 해당 연결 객체를 넘겨주는 이유?

A. Class.forName()은 클래스로더를 통해 해당 데이터베이스 드라이버를 로드할 뿐, 데이터베이스와의 연결에 관해서는 아무런 동작을 하지 않는다.

JDBC 사용법

  • Class.forName() : 드라이버를 로드한다.
  • DriverManager : 로드된 드라이버를 통해서 Connection을 활성화해주는 객체
  • Connection : 데이터베이스와의 연결
  • Statement : SQL을 실행하는 객체
  • ResultSet : SQL문 실행 후 데이터를 받는 객체
  • close() : 자원 반환은 반드시 이루어져야한다.

결론

자바라는 프로그래밍언어에서 JDBC를 사용하게되면 DBMS 벤더에 의존하지 않는 독립적 시스템 개발을 해줄수 있게 한다..
이를 통해, DBMS의 종류에 따라 다르게 코딩하지 않고, 어떤 DBMS든지 동일하게 데이터베이스의 CRUD를 구현할 수 있게 된다.

[출처]
https://dyjung.tistory.com/50
https://ss-o.tistory.com/132
https://kyun2.tistory.com/23?category=732999
https://jaehoney.tistory.com/29

profile
진주의 코딩일기

0개의 댓글