JDBC (Java Database Connectivity)

Slides:



Advertisements
Similar presentations
Web Based Data Warehouse Query Tool 이화여자대학교 2002 년 컴퓨터학과 졸업프로젝트 14 조.
Advertisements

CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
11장. 프로토콜 핸들러 AI &HC I LAB 김 성 현.
JDBC 연결 Oracle.
JDBC.
Introduction to Servlets
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
APPEON SOLUTION INTRODUCTION.
데이터베이스 시스템.
제 10 장 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
소프트웨어시스템설계(6주) 데이터베이스 연동
Web Programming 강의 소개
7 데이터베이스.
Chapter-2. 개발환경 구축하기.
JSP BBS (Bulletin Board System)
JDBC 개요 Section 04 JDBC 개념과 역할 JDBC 구조 애 플 리 케 이 션 오라클 DBMS MySql DBMS
JSP Programming with a Workbook
어서와 Java는 처음이지! 제19장 데이터베이스 프로그래밍.
2 서블릿의 기초.
JDBC 프로그래밍 이수지 이동주 1.
3장. 웹 어플리케이션과 JSP 및 Servlet의 이해 제3장.
1. JSP(Java Server Pages) 소개
9 표준 액션.
자바 서버 API와 서블릿 데이타베이스 실험실 이찬섭, 박용문.
5 익셉션 처리.
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
동호회 구축 제안서 인터넷전문가그룹 4biz.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
1. JSP(Java Server Pages) 소개
메소드 호출과 힙 원격 메소드 호출 서블릿 엔터프라이즈 자바 빈즈
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
JDBC 소개 및 설치 슬라이드 노트에 모든 설명을 작성 Database Laboratory.
3 JSP의 기초.
7 JSP의 기초.
4 쿠키와 세션.
11장. 데이터베이스 서버 구축과 운영.
1강 01장. 웹과 자바.
IOC, DI 2015 Web Service Computing.
Department of Computer Software MyongJi University
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
Chapter 02 웹의 이해.
NTAS 소개 (Network Transaction Application Server)
6장. JSP 지시문 (Directives) 제6장.
구글해킹과 SQL인젝션 지창훈, 최연우.
중 간 고 사 (웹프로그래밍)
Chapter 07 소스코드의 취약점 분석.
(Network Transaction Application Server)
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
9강. JSP 본격적으로 살펴보기-I JSP 태그의 개념 이해 JSP 동작 원리 JSP 내부 객체
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
Network Programming(1)
자바 5.0 프로그래밍.
Web Socket.
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
JSP Programming with a Workbook
교육지원 시스템 개발 ProjectTeam (매경 2조).
NTAS 소개 (Network Transaction Application Server)
myfood.com 상명대 맛집 홈페이지 구축 제안서
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
Oracle 구성 Internet Application Server Database Server.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
홈페이지 제안서
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

JDBC (Java Database Connectivity) 양용철(ycyang@cs.chonbuk.ac.kr) 김기헌(khkim@cs.chonbuk.ac.kr)

JDBC 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API 동일 프로그램으로 Oracle, Informix, MS-SQL, mySQL 등 접속 플랫폼에 독립 자바 애플릿 (Browser) Client HTTP, RMI, CORBA 등 자바 응용 프로그램 Client JDBC 응용 서버(자바) 서버 JDBC 특정 DB 프로토콜 특정 DB 프로토콜 DBMS DBMS DB Server DB Server 2019-02-16

JDBC JDBC가 하는일 JDBC Type 데이타베이스 연결 SQL문장 전송 결과 처리 Type 1 : JDBC-ODBC Bridge Type 2 : Native API 부분적 자바 드라이버 Type 3 : JDBC-Net 순수 자바 드라이버 Type 4 : JDBC-네이티브 프로토콜 2019-02-16

Type 1 : JDBC-ODBC Bridge ODBC드라이버를 이용하여 DB접근 클라이언트 시스템에 ODBC 바이너리 코드와 데이타베이스 클라이언트 코드가 설치되어 있어야 함 Ex) MS-SQL 접속 클라이언트 DBMS 서버 자바 응용 프로그램 DBMS Engine Storage JDBC ODBC Bridge Database Connection Via middle ware or DBMS Network ODBC Driver 2019-02-16

Type 2 : Native API 부분적 자바 드라이버 JDBC호출을 Oracle, Informix등의 클라이언트 API호출로 변환 데이타베이스 API가 클라이언트에 설치되어 있어야 함 Ex) Oracle OCI Driver 클라이언트 DBMS 서버 자바 응용 프로그램 DBMS Engine Storage Native JDBC Driver Database Connection Via DBMS Network DBMS API 2019-02-16

Type 3 : JDBC-Net 순수 자바 드라이버 JDBC 호출이 DBMS독립적인 네트워크 프로토콜로 변환 네트워크 서버 미들웨어 필요함 가장 융통성있는 JDBC DBMS 서버 클라이언트 DBMS Engine Storage 자바 응용 프로그램 JDBC Driver Middleware All-Java JDBC Driver 2019-02-16

Type 4 : JDBC-네이티브 프로토콜 JDBC 호출을 특정 DBMS에 제공되는 네트워크 프로토콜로 변환 순수 자바로 구현 Ex) Oracle Thin Driver DBMS 서버 클라이언트 DBMS Engine Storage 자바 응용 프로그램 Database connection Via DBMS networking All-Java JDBC and Networking Protocol 2019-02-16

SQL*Plus – 예제 데이타 2019-02-16

JDBC 예제 프로그램 import java.sql.*; import java.io.*; public class JDBCExample { public static void main(String args[]) throws SQLException { 1. Class.forName(“oracle.jdbc.driver.OracleDriver”); 2. Connection conn = DriverManager.getConnection("jdbc: oracle:thin:@210.117.172.160:1521:csdblab","scott","tiger"); 3. Statement stmt = conn.createStatement(); try { 4. ResultSet rs = stmt.executeQuery("select empno, ename from emp"); while(rs.next()) System.out.println(rs.getInt(1)+” “+rs.getString(2)); rs.close(); } catch(Exception e){ System.out.println(e); 5. conn.close(); 2019-02-16

실행 결과 2019-02-16

JDBC 프로그램 1. 드라이버 선택 2. 연결 설정 3. SQL Statement 객체 생성 4. 수행, 결과 처리 5. 연결 해제 2019-02-16

1. 드라이버 선택 Class.forName(); 사용 Ex) Drivermanager.registerDriver();사용 오라클 : 오라클 JDBC드라이버 필요 Class.forName(“oracle.jdbc.driver.OracleDriver”); MS-SQL(JDBC-ODBC Bridge) Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Drivermanager.registerDriver();사용 Drivermanager.registerDriver( new oracle.jdbc.driver.OracleDriver()); 2019-02-16

2. 연결 설정 JDBC URL Connection jdbc:<subprotocol><subname> jdbc:oracle:thin:@210.117.172.160:1521:csdblab jdbc:oracle:oci:@210.117.172.160:1521:csdblab jdbc:odbc:csdblab Connection DriverManager.getConnection(URL,user,password); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@210.117.172.160:1521:csdblab","scott","tiger"); 2019-02-16

3. SQL Statement 객체 생성 Statement 객체 생성 Statement stmt = conn.createStatement(); 2019-02-16

4. 수행, 결과 처리 수행 : Statement 클래스 결과 처리 : ResultSet 클래스 executeQuery(String) ResultSet rs = stmt.executeQuery("select empno, ename from emp"); 결과 처리 : ResultSet 클래스 while(rs.next()) System.out.println(rs.getInt(1)+” “+rs.getString(2)); rs.close(); getInt(), getString(), getFloat(), getBool()….. 2019-02-16

4. 수행, 결과 처리 executeUpdate() Select문장은 executeQuery() Update, Insert, Delete…문장은 executeUpdate() ResultSet처리 필요 없음 Ex) String updateString = “update coffees set empno = 10” + “where ename like ‘John’ ”; stmt.executeUpdate(updateString); 2019-02-16

4. 수행, 결과 처리 PreparedStatement setXXX() 메소드를 이용하여 값 설정 Ex) Statement String updateString = “update coffees set empno = 10” + “where ename like ‘John’ ”; stmt.executeUpdate(updateString); PreparedStatement PreparedStatement updateStmt = conn.preparedStatement(“update coffees set empno = ? where ename like ? ”; updateStmt.setInt(1,10); updateStmt.setString(2,”John”); updateStmt.executeUpdate(); 2019-02-16

5. 연결 해제 Connection클래스의 close()메소드 conn.close() 2019-02-16

JDBC를 이용한 웹과 DB연동 웹서버 프로그래밍 언어 : Java Servlet, JSP OS : Linux 웹서버 : Apache 1.3.9 Servlet 엔진 : Apache-Jserv 1.0 JSP 엔진 : gnujsp-1.0 DB : Oracle 8.1.5 JDBC드라이버 : Oracle thin Driver 2019-02-16

Servlet 작동 방식 Is servlet loaded? Class Loader Servlet Instance No HTTP request Request Yes Invoker Service Thread HTTP response Response Web Server 2019-02-16

Java Servlet import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletDemo extends HttpServlet { Connection con; String dbUrl = “jdbc:oracle:thin:@210.117.172.160:1521:csdblab”; String user = “scott”; String passwd = “tiger”; public void init(ServletConfig config) throws ServletException { try { Class.forName(“oracle.jdbc.driver.OracleDriver”); con = DriverManager.getConnection(dbUrl, user, passwd); } catch( Exception e ) { System.err.println(e); 2019-02-16

Java Servlet public synchronized void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html;charset=euc-kr"); PrintWriter out = res.getWriter(); out.println("<html>"); out.println("<head><title> Servlet Demo</title></head>"); out.println("<body>"); try { Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select empno, ename from emp"); while(rs.next()) out.println(rs.getInt(1)+” “+rs.getString(2)+”<br>”); rs.close(); } catch(SQLException e){ System.err.println(e); out.println(“</body></html>”); 2019-02-16

Java Servlet public void destroy() { try { con.close(); } catch( SQLException e ) { System.err.println(e); 2019-02-16

실행 결과 2019-02-16

JSP 작동 방식 Generate Reading Class file Tokenize Is jsp modified? Yes Loader HTTP request Request No Servlet Instance HTTP response Response Web Server Invoker Service Thread 2019-02-16

JSP <html> <%@ page language="java" %> <%@ page import= " java.sql.* " %> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-KR"> <title> JSP Demo </title> <body> <% String dbUrl = “jdbc:oracle:thin:@210.117.172.160:1521:csdblab”; String user = “scott”; String passwd = “tiger”; Class.forName(“oracle.jdbc.driver.OracleDriver”); Connection con = DriverManager.getConnection(dbUrl, user, passwd); 2019-02-16

JSP Statement stmt = con.createStatement(); try { ResultSet rs = stmt.executeQuery("select empno, ename from emp"); while(rs.next()) { %> <%= rs.getInt(1) %> <%= rs.getString(2) %><br> <% } rs.close(); catch(Exception e){ System.err.println(e); con.close(); </body> </html> 2019-02-16

실행 결과 2019-02-16

참고 문헌 JDBC Servlet, JSP Web Site 프로그램 세계 99/12, 2000/01, 2000/02 마이크로 소프트웨어 2000/04 Java Servlet Programming Java Server Programming Web Site http://java.sun.com http://www.javastudy.co.kr/ http://www.idcsoft.net/~java/index.html 2019-02-16