[학습일지]JAVA교육일지 69일차 (SERVER)⭐
JDBC
JDBC
[ 정의 ]
- Java Database Connectivity
- 자바(응용 프로그램)와 오라클(데이터베이스)간의 연결 시켜주는 기술이다.
- 중간 계층
- 자바 프로그램 <-> 오라클
a. 직접 연결
b. 강한 결합
c. 전용 API 사용
d. 난이도가 높다.
- 자바 프로그램 <-> JDBC <-> 오라클
a. 간접 연결
b. 약한 결합
c. 범용 API 사용
d. 난이도가 낮다.(코드가 쉽다.)
[ 이클립스(Eclipse)에서 JDBC 환경 설정 ]
- WEB-INF > lib > ojdbc6.jar (오라클 버전에 따라 적합한 JDBC 다운)
- https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html
- SQL-Developer 실행 후 파일 경로를 까먹지 않기 위해 수업 실습 프로젝트 주소에 저장시킨다. (D:/class/server/JSPTset)
- JDBC의 모든 INSERT, UPDATE, DELETE 등은 실행 즉시 자동 커밋 된다. (Auto commit)
[ 자바 환경에서 SELECT * FROM 테이블명; 실행 방법? ]
1) 응용 프로그램(Java) 실행
2) 오라클 접속( 자바(JDBC)를 사용해서 오라클 접속 ) : Connection 클래스 사용(JDBC 클래스)
호스트명 | 서버IP or 도메인주소 |
포트번호 | 0000 |
SID | xe |
드라이버 | thin |
사용자명 | hr |
암호 | java1234 |
3) 질의 : Statement 클래스 사용
- SQL 사용
- 반환값이 있는 쿼리: SELECT, 결과셋 -> 업무에 사용한다. -> ResultSet 클래스 사용
- 반환값이 없는 쿼리: SELECT 빼고 전부
4) 오라클 접속 종료: Connection 클래스 사용
- commit or rollback
- 접속 종료
[ 이클립스에서 자바(JDBC)를 사용해서 오라클에 접속하기 ]
1) DB 접속: Connection 클래스
Connection conn = null;
2) 연결 문자열 생성 : 접속에 필요한 정보로 구성된 문자열
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
3) 설치한 JDBC 드라이버 로딩( ojdbc6.jar )
Class.forName("oracle.jdbc.driver.OracleDriver");
4) 접속
- Connection 객체 생성(new Connection())
- 연결함과 동시에 연결정보를 가지고있는 Connection 객체를 반환한다.
conn = DriverManager.getConnection(url, id, pw); // *** 자바와 오라클이 연결(접속 O)
System.out.println(conn.isClosed()); // false
5) 접속 종료
conn.close();
System.out.println(conn.isClosed()); // true
- 전체코드
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, id, pw);
System.out.println(conn.isClosed()); // false
conn.close();
System.out.println(conn.isClosed()); // true
} catch(Exception e ) {
e.printStackTrace();
}
}
- 보편적으로 DB가 필요할 때마다 Main에서 위에 전체 코드 처럼 작성하는 것이 아닌, 따로 DB클래스를 만들어서 사용한다. ( 앞으로 실습은 DBUtil.open() 을 사용해서 할 예정이다. )
public class DBUtil {
public static Connection open() {
Connection conn = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, id, pw);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}