18일차 수업(2) ( JDBC )
JDBC ( Java Database Connectivity)
자바프로그램과 데이터베이스와 연동하는 기술이다.
JDBC
자바프로그램 <-------------> 데이터베이스
먼저 JDBC를 배우기전에 준비해야할 사항들이 있다.
첫째 데이터베이스 설치 및 실행여부 확인
둘째 드라이버(dirver) 확인
-> 벤더(회사)에서 만든 클래스 파일들을 의미한다.
-> 압축해서 제공한다. ( *.jar, *.zip 형식 )
셋째 클래스패스 ( classpath )
a. path ==> 명령어의 경로
b. classpath 를 설정해주는 방법
클래스파일의 경로
CLASSPATH 환경변수에 설정방법
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6_g.jar
또는
ext 폴더에 저장하는 방법
1) 이클립스의 아무 프로젝트나 하나잡고 오른쪽클릭 -> Properties 들어간다
2) JRE System Library[JavaSE-1.7] 가 JRE인지 JDK 인지 확인하고
3) C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6_g.jar 있는
ojdbc6_g.jar 파일을 ext 폴더에 복사하여 붙여넣고 이클립스 재실행
여기까지가 JDBC를 사용하기위한 사전 준비!
------------------------------------------------------------------------------------
이제 java와 DB를 연결하는 자바소스를 알아보겠습니다.
먼저 아래와 같이 설정을 해줍니다.
// ojdbc6_g.jar 압축파일내의 핵심 클래스
String driver = "oracle.jdbc.driver.OracelDriver";
//서버의 ip,port번호, sid명
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 사용자 계정
String userid = "scott";
// 사용자 비번
String passwd = "tiger";
그리고 나서 드라이버 로딩을 합니다.!
Class.forName ( driver );
이것을 써주면 에러가 나니까 예외 처리를 해주어야한다!
그다음엔 Connection 맺기
import java.sql.Connection;
Connectioncon = DriverManager.getConnection( url,userid,passwd );
커넥션을 맺은 후에는 Statement 생성 ( SQL 문 전송 )
Statement 종류 3가지가 있습니다.
1) Statement
예>
delete from person where age = 10;
delete from person where age = 11;
..
delete from person where age = 100;
=> statement 얻기
Statement stmt = con.createStatement();
2) PreparedStatement (*) 제일 자주 사용!
delete from person where age = ?;
나중에 ? 에 값을 지정하는 방식.
=> PreparedStatement 얻기
PreparedStatement pstmt = con.PreparedStatement( sql );
// ? 값 설정
pstmt.setInt(1,10);
insert into person ( num ,name, age, address)
3) callableStatement
=> PL/SQL 사용시
Statement 설정이 끝나면 SQL문 전송
- Statement 이용
: insert, delete, update ( DML 전송)
int n = stmt.executeUpdate(sqp);
=> n 값은 적용된 레코드 갯수
=> 디버깅 가능 ( 성공실패확인 가능 )
: select
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int num = rs.getInt("num");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("addresss");
System.out.println(num+"\t"+name);
}
- PreparedStatement 이용
마지막으로 외부자원 close !! 사용했던 자원 역순으로......
Connection con
Statement stmt
ResultSet rs
rs.close();
stmt.close();
con.close();
------------------------------------------------------------------------------------
JDBC 사용시 반드시 적용시키는 2가지 패턴
가. DAO 패턴 ('다오'라고 읽지 말고 '디에이오'라고 읽기 )
-> Data Access Object 패턴
-> Data? (파일, 데이터베이스)
나. DTO 패턴
-> Data Transfer Object 패턴
-> 여러 데이터를 한꺼번에 효과적으로 전송하기 위한 클래스.
-> Value Object(vo), domain object ,entity 라고도 한다.
-> 일반적으로 테이블 당 한개씩 생성한다.
'프로그래밍 > Java' 카테고리의 다른 글
자바 예제 연습 / 자바 구구단 출력 (0) | 2018.02.06 |
---|---|
자바 [JAVA] 27일차 수업( JSP servlet 및 환경설치 ) (0) | 2017.08.21 |
자바 [JAVA] 18일차 수업 (SQL - insert 문 ,Delete 문 ) (0) | 2017.08.21 |
자바 [JAVA] 17일 수업 보충 (오라클 설치,오라클 접속 ) (0) | 2017.08.21 |
자바 [JAVA]17일차 수업( SQL 종류, Select 문, 계정생성 및 권한부여) (0) | 2017.08.21 |