본문 바로가기
개발자/백엔드 웹 개발자 과정(국비)

2022년 12월 19일 _ 29회차 (JDBC)

by 초응 2022. 12. 19.
JDBC란?
-Java Database Connectivity의 약자로 자바프로그램과 데이터베이스를 연결하는 프로그래밍 방식을 이야기한다.
- Java 언어로 다양한 종류의 관계형 데이터 베이스를 접근할 때 사용되는 표준SQL 인터페이스 API로 java.sql 패키지를 의미한다.

JDBC의 장점
- 자바 언어로 작성된 api이므로 운영체제에 독립적
- DB 종류와 관계없이 프로그래밍 가능
(JDBC Driver만 있다면 어떤 DBMS와도 연동가능)
-특정 DB에 연동되는 JDBC프로그램은 다른 DB 연동시에도 프로그램 수정 없이 코드를 그대로 활용 할 수 있다.
(JDBC Driver와 url만 다를 뿐, 프로그램의 나머지 코드는 수정할 필요가 없다. 

JDBC절차
- 1단계 [java.sql패키지 import]
import java.sql*;
-2단계 [JDBC 드라이버 로드]
Class.forName("oracle.jdbc.driver.OracleDriver")
-3단계 [DB연결하기]
Connection con= DriverManager.getConnection(url,user,pwd);
-4단계 [DB연결 끊기]
con.close();

Stratement 객체(정적)
statement 객체는 statement 인터페이스를 구현한 객체로 실제 SQL문을 수행하기 위해서 사용하며 항상 인수가 없는
Connetion 클래스의 createStatement() 메소드를 호출함으로써 얻어진다.
Statement st = con.createStatement();

SQL(Query)을 전송 메소드들
-select문
 : ResultSet rs = st.executeQuery("select문");
-insert문/ update문/ delete문 
: int count = st.executeupdate("update문);
모든 sql문
:blooean isRs = st.execute("모든 sql문");

1. 위 구문의 sql이 select문이라면 true 값 반환 : ResultSet rs = st.getResultSet();
2. update/delete/insert 문이라면 false값 반환 : int count = st.getupdatecount();

Statement 객체 (정적) : 속도 /// preparedStatement 객체 (동적)쿼리가 준비되어있느냐 준비되어있지 않느냐 차이.

PreparedStatement 객체 (동적)
-SQL문 이미 가진 Statement가 DB에 넘겨져 컴파일이 되어지고,
sql문의 ?(파라미터)만 나중에 추가해 실행되는 준비된 Statement객체

*장점  : 반복적인 sql문을 실행할때 실행이 더 빠르다.
*단점 : sql문마다 PrepareStatement 객체를 생성해야한다.(재사용 불가능) 

- 객체를 만들때부터 어떤 쿼리를 수행할지 쿼리 선언 먼저한다.
- Statement (용달차)> 어떤 sql이 들어와도 통째로
- PreparesStatement (승합차) : 바뀔 수 있는 값 부분을 ? 로 대치 /  ? 제외한 나머지는 번역된 상태이다.
- 모든 좌석에 사람이 앉아야만 출발. / 각각 setter 로 값을 저장할 수 있다. 


[ResultSet]
- 열거형 클래스의 일종 : 집합객체 (가공 되어있는 정보를 제공하기 위해 만들어짐)
ㄴ열거형 클래스로 StringTokenizer과 Iterator<String> keys = map.keySet().iterator();이때사용

배열- 인덱스
열거형 - 커서
데이터베이스의 결과를 반영한것.
데이터베이스는 표(테이블)로 반환하도록 되어있음. 
요소들이 모여서 객체 정보를 표현하게 되고 객체정보는 그 표에서 로우(=레코드)
내 뒤에 데이터 있니?는 -?> 한객체정보를 물어보는것(한줄)

 

'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글

HTML<2>_2022-12-23  (0) 2022.12.23
221222_HTML(1)  (0) 2022.12.22
[DB]테이블 생성, 삭제, 수정, 데이터 생성, 수정, 삭제  (0) 2022.12.16
[DB] JOIN,서브쿼리  (0) 2022.12.15
[DB]정리  (0) 2022.12.14