DB/JDBC

1~7

브리오 2024. 1. 29. 11:20

CH01 JDBC란 무엇인가?

SQL을 작성할 수 있는 사람들을 위한 쿼리 실행 도구는 DB Client 프로그램

SQL을 작성할 수 없는 사람들을 위한 쿼리 실행 도구는 업무용 프로그램

DBMS마다 각각의 API를 사용해서 프로그램을 연결하는것은 불필요하다

JDBC가 하나의 변압기 역할을 한다

이때 각DBMS의 API를 JDBC와 연결 할 수 있게 하는것이 JDBC DRIVER이다

CH02 DBMS와 DRIVER준비

압축파일 풀면 안되고 그대로 사용하기

 

https://proni.tistory.com/entry/%E2%98%95-Java-IntelliJ-Oracle-JDBC-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-at-windows

 

☕ Java * IntelliJ - Oracle JDBC 연결하기! ( at. windows )

Java에서 DB를 연결하기 위해서는 자바 프로그램과 데이터베이스를 연결해주는 JDBC 드라이버가 있어야한다고 한다. DBMS에 따라 DB를 다루는 방식이 다르기에 JDBC가 인터페이스들만 제공하고 나머

proni.tistory.com

CH03 JDBC 기본 코드의 이해

 

응용 프로그램(Application): 사용자가 원하는 작업을 수행하는 프로그램

JDBC(Java Database Connectivity): 자바(Java) 프로그래밍 언어에서 데이터베이스에 접근할 때 사용하는 API,

응용 프로그램이 데이터베이스와 통신할 수 있게 한다.

 

JDBC 드라이버: JDBC API 호출을 해당 DBMS가 이해할 수 있는 프로토콜로 변환하는 역할,

각 DBMS 제조사에서 제공하는 JDBC 드라이버가 존재한다

 

DBMS(Database Management System): 데이터베이스를 관리하는 시스템

DB(Database): DBMS를 통해 관리되며, 실제 데이터가 저장되는 곳

응용 프로그램은 JDBC를 통해 DBMS와 통신

JDBC는 JDBC 드라이버를 통해 DBMS와 통신

 

JDBC API Flow

1. Class.forName("oracle.jdbc.driver.OracleDriver");

2. Connection con = DriverManager.getConnection(url," ");

3. Statement st = con.createStatement();

4. ResultSet rs = st.executeQuery(sql);

5. rs.next();

6. String title = rs.getString("this");

7.close();

1->사용하고자 하는 드라이버 로딩

2->JDBC드라이버가 정상적으로 로딩되면 DriverManager가 Connection객체를 가져온다,

Connection은 db와 연결정보를 가지는 인터페이스, 즉 Connection객체는 인터페에스를 구현한 객체다

3->statement 객체 생성, statement는 작성된 sql을 db에 전송하는 방법을 정의한 인터페이스이다

4->쿼리 실행

5->쿼리가 실행된 후 결과파일에서 커서는 bof를 가리키고 있고, 다음 로우의 결과를 반환하는 코드

6->가져온 로우의 특정 값을 사용

7->사용한 객체를 역순(rs,state,connection)으로 닫아준다

CH04 쿼리 실행하기 실습

url : 어떤 데이터베이스에 들어갈지 결정

String url ="jdbc:oracle:thin:@localhost:1521/xepdb1";

INSERT할때는 테이블의 스키마에 맞춰서 하기

CH05 예제1

Date는 java.util로 가져오기

1-String이 아닌 형식은 어떻게 받을건지

2-반복문 사용해서 데이터베이스 끝까지 어떻게 출력할것인지

CH06 예제1 해설, 예제2

1-2 : while(rs.next()) 이렇게 사용하자

2-1 : 조회수가 10 이상인것들만 출력하기

CH07 예제2 해설

자바코드로 if 사용하면 결국 모든 데이터를 관찰해야한다

String sql = "SELECT * FROM NOTICE WHERE HIT> 10";

데이터 필터링,정렬,그룹화 등의 모든 데이터 연산은 데이터베이스에서 처리해야한다->그래야 연산횟수가 적어진다