Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 10 장 JDBC 프로그래밍 2008 2학기 인터넷비즈니스과 강 환수 교수.

Similar presentations


Presentation on theme: "제 10 장 JDBC 프로그래밍 2008 2학기 인터넷비즈니스과 강 환수 교수."— Presentation transcript:

1 제 10 장 JDBC 프로그래밍 2008 2학기 인터넷비즈니스과 강 환수 교수

2 JDBC(Java DataBase Connectivity)
자바 프로그램에서 데이터베이스와 연결하여 데이터베이스 관련 작업을 할 수 있도록 해주는 자바 프로그래밍 인터페이스를 위한 API(Application Programming Interface) 규격 데이터베이스를 연결하여 테이블 형태의 자료를 참조 SQL 문을 질의 SQL 문의 결과를 처리

3 드라이버 종류 JDBC 드라이버 JDBC 인터페이스에 맞추어 해당 DBMS에서 JDBC 관련 API 호출이 가능하도록 관련 인터페이스와 클래스를 구현한 클래스 라이브러리 JDBC 드라이버를 유형 1, 2, 3, 4로 크게 4가지로 분류 JDBC-ODBC 브릿지 드라이버 Native-API 드라이버 Net-Protocol 드라이버 Native-Protocol 드라이버

4 MySQL JDBC 드라이버 설치 JDBC 드라이버
[mysql-connector-java bin.jar] 파일을 복사하는 것으로 완료 [JDK 설치 폴더]/[jre]/[lib]/[ext] [Tomcat 설치 폴더]/[lib] [이클립스 프로젝트 하부의 WebContent]/[WEB-INF]/[lib]

5 JDBC 프로그래밍 절차 JDBC 프로그래밍 절차 6단계

6 1단계 : JDBC 드라이버 로드 Class.forName()
String driverName = "org.gjt.mm.mysql.Driver"; Class.forName(driverName); 또는 String driverName = "com.mysql.jdbc.Driver";

7 DriverManager.getConnection()
2단계 : 데이터베이스 연결 DriverManager.getConnection() String dbURL = "jdbc:mysql://localhost:3306/univdb"; Connection con = DriverManager.getConnection(dbURL, "root", ""); 표현 요소 표현 내용 다른 표현 의미 //<host or ip> //localhost // MySQL이 실행되는 DBMS 서버를 지정, IP주소 또는 도메인 이름 :<port> :3306 :3308 DBMS 서비스 포트 번호로, 3306으로 서비스된다면 생략 가능 /<dbname> /univdb /mydb 접속할 데이터베이스 이름

8 3단계 : SQL을 위한 Statement 객체 생성
PreparedStatement CallableStatement Statement stmt = con.createStatement(); PreparedStatement pstmt = con.prepareStatement(SQL); CallableStatement cstmt = con.prepareCall(SQL);

9 메소드 executeQuery(SQL) 메소드 executeUpdate(SQL) 메소드 execute(SQL)
ResultSet result = stmt.executeQuery("select * from student;"); int rowCount = stmt.executeUpdate("delete from student where name = ‘홍길동’;"); stmt.execute("select * from student;"); ResultSet result = stmt.getResultSet(); stmt.execute("delete from student where name = ‘홍길동’;"); int updateCount = stmt.getUpdateCount();

10 5단계 : 질의 결과 ResultSet 처리 ResultSet
ResultSet result = stmt.executeQuery("select * from student;"); while ( result.next() ) { <%= result.getString(1) %> <%= result.getString(”passswd”) %> <%= result.getString(3) %> <%= result.getString(”depart”) %> <%= result.getInt(5) %> }

11 6단계 : JDBC 객체 연결 해제 JDBC 프로그래밍의 마지막 단계 이미 사용한 JDBC 객체의 연결을 해제하는 일
con.close(); result.close(); pstmt.close();

12 JSP 데이터베이스 조회 프로그램 첫 데이터베이스 연결 프로그램 테이블 조회 프로그램 dbconnect.jsp
selectdb.jsp

13 PreparedStatment를 이용한 검색 프로그렘
인터페이스 PreparedStatement selectname.html selectname.jsp

14 메타데이터 조회 메타데이터 데이터를 위한 데이터 데이터베이스 자체에 대한 정보 또는 테이블 자체 및 칼럼에 대한 정보
DatabaseMetaData와 ResultSetMetaData를 제공 resultsetmetadata.jsp

15 커넥션 풀 데이터베이스 커넥션 풀(Database Connection Pool) 관리 기법
데이터베이스 연결 작업은 서버의 자원을 이용하는 작업으로, 계속적으로 발생한다면 시스템에 상당히 부하를 주는 요소 일관된 커넥션 관리가 필요 커넥션 풀(Connection Pool) 미리 여러 개의 데이터베이스 커넥션을 만들어 확보해 놓고 클라이언트의 요청이 있는 경우, 커넥션을 서비스해 주는 커넥션 관리 기법

16 아파치 자카르타 DBCP 자카르타 DBCP 다음의 자카르타 공통 콤포넌트(Jakarta-Commons Component)로 구성 톰캣을 설치했다면 이미 자카르타 DBCP가 설치됨 톰캣의 설치 폴더 [Tomcat 설치폴더]/[lib] 하부 파일 [tomcat-dbcp.jar]

17 파일 [server.xml]의 컨텍스트에 리소스 설정
컨텍스트에서 컨넥션 풀에서 이용할 리소스를 추가 데이터베이스의 접속에 필요한 드라이버 이름, 사용자이름, 암호, URL 등을 기술

18 설정 파일 web.xml에서 리소스 참조방법 등록
이미 [server.xml] 파일에 등록한 리소스를 찾는 방법을 기술 이클립스에서 현재 프로젝트 폴더 하부 [WebContent]/[WEB-INF]에 있는 파일 [web.xml] 수정 <description>MySQL Test App</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

19 DBCP를 이용한 데이터베이스 연결 프로그램 DBCP를 이용한 레코드 삽입 프로그램
dbconnectwithdbcp.jsp DBCP를 이용한 레코드 삽입 프로그램 insertstudent.jsp

20 Thank You !


Download ppt "제 10 장 JDBC 프로그래밍 2008 2학기 인터넷비즈니스과 강 환수 교수."

Similar presentations


Ads by Google