- JDBC (Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다

1. 준비사항

1. 사용하려는 DB 의 라이브러리 다운
- ojdbc8.jar
<https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html>

2. DB 연동할 Java Project에 ojdbc.jar 추가
	- 프로젝트별로 추가
	1) 프로젝트명 우클릭 -> Build Path -> Configure Build Path
	2) Libraries Tap -> ModulePath Click -> Add External Jars CLick
	3) Ojdbc8.jar 찾아서 클릭하고 열기
	4) ApplyAndClose 

2. DAO

1. DB 연결 정보
	String username = ""   : DB의 ID
	String password = ""   : DB의 PW
	String url = ""        : DB의 IP:PORT:SID
	String driver = ""     : 사용하려는 DB의 Library (생략가능) 	

2. driver를 메모리에 로딩
	- ~~1번에서 driver를 생략 했으면 생략 가능~~
	Class.forName(driver);

3. DB 연결
	Connection con = DriverManger.getConnection(url, username, password)

4. SQL Query문 작성
	- 한개의 문자열이 나오도록 작성
	- 끝에 ; 는 작성하지 않음
	- 변수값은 ? 처리
	- 컬럼명이나 테이블명은 ? 로 처리 할 수 없음
	- 문자열 이나 날짜 Data 는 '' 생략
	String sql = "SELECT * FROM DEPARTMENTS WHERE DEPARTMENT_ID = ?"

5. 작성한 Query문을 DB로 미리 전송
	- 미완성된 Query문을 DB로 보내서 실행 준비 시키기
	PreparedStatement  st = con.prepareStatement(sql);

6. ? 값 적용
	- DB에게 ? 값 전송 준비
	- set데이터타입(인덱스번호, 값)
	- 인덱스 번호는 ? 의 순서대로 자동 지정, SQL문을 읽는 순서와 상관 없음
	- 인덱스 번호는 1번 부터 시작
	st.setInt(1, 10);

7. 최종 전송 후 결과처리

	- executeXXX(SQL문을 넣으면 에러)

	a. SELECT
	ResultSet rs = st.executeQuery();
		- Java에서 DB의 ResultSet을 처리하기 위한 ResultSet 제공
		- 주요메서드
			1) next()
					- 결과물에서 한줄의 ROW를 읽고 데이터가 있으면 true, 없으면 false를 리턴
					- 결과물에서 Data를 꺼내 오려면 무조건 실행

			2) getXXX()
					- next() 메서드가 호출된 후 사용 가능
					- get데이터타입("조회결과의 컬럼명");
					- get데이터타입(컬럼의 인덱스 번호)  - SELECT 결과의 왼쪽부터 1이 자동 지정

	b. INSERT, UPDATE, DELETE
	int result = st.executeUpdate();

8. 연결 해제
	- 연결된 역순으로 해제
	rs.close(); //SELECT 만, INSERT UPDATE DELETE는 ResultSet이 없음
	st.close();
	con.close();