Download presentation
Presentation is loading. Please wait.
1
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
Database Laboratory
2
Introduction 웹(Web) 환경에서 데이터베이스 시스템을 연동하는 방법은 다음과 같다
Server ↔ Client 구조의 통신 (2-Tier) Server ↔ Middleware ↔ Client 구조의 통신 (3-Tier) 우선 웹 환경에서 데이터베이스 시스템을 연동하는 방법은 다음과 같습니다. 서버 클라이언트 구조의 2-tier 기법과 서버와 클라이언트 사이에 미들웨어를 위치시킨 3-tier 기법의 있습니다. Database Laboratory
3
JAVA Applet을 이용한 Client – Server 연동 기법
Applet 에서 JDBC 프로그램을 하는 방법 직접 Applet Code에 JDBC API 를 사용하는 방법 (2 –Tier) Applet은 단지 Middleware Server(주로 JAVA Servlet 을 이용) 와 통신하여 질의를 전달하고, JDBC API는 Middleware Server 측에서 동작하여 데이터베이스에 접 근하는 방법 (3 – Tier) 이번 시간에는 JAVA Applet을 이용한 2-Tier 프로그 램을 실습한다. 이번 시간에는 자바 애플릿을 이용한 서버-클라이언트의 연동을 실습합니다. 애플릿에서 2-tier 와 3-tier 기법을 구현하는 방법은 다음과 같습니다.. 직접 Applet 코드에 JDBC API 를 사용하는 2-tier 기법 클라이언트의 애플릿은 단지 middleware와 통신하는 기능만 담당하고, 서버와의 통신은 middleware가 담당하여, 클라이언트의 질의를 전달하는 기법인 3-tier 방법이 있습니다. 이번 시간에는 자바 애플릿을 이용한 2-tier 프로그램을 실습합니다. Database Laboratory
4
JDBC Driver의 선택 이전에 배웠던 JDBC Driver의 종류를 간단히 살 펴보자 Type Description 1
JDBC-ODBC 브릿지 단지 ODBC를 불러주는 역할 (sun.jdbc.odbc 드라이버 패키지) 2 Native-API 1번 타입과 비슷한 유형. 클라이언트에서 드라이버를 사용하기 위하여 소프트웨어를 설치해야 한다. 3 네트워크 연결 드라이버 JDBC 메소드 호출을 DBMS에서 독립적인 네트워크 프로토콜로 바꾸어 주는 드라이버. 4 DBMS 프로토콜을 사용하는 드라이버 가장 많이 쓰이는 드라이버로 DBMS의 기능을 직접 호출한다. 데이터 베이스의 연동을 위한 JDBC 드라이버의 종류를 살펴보면 다음과 같습니다. Database Laboratory
5
JDBC Driver의 선택 및 위치 Web 기반의 데이터베이스 연동을 위해서는 Type 3번 이 상의 JDBC 드라이버를 사용한다. JDBC 드라이버의 위치 Client에 JDBC 드라이버를 두고 클래스 패스를 설정한다. 서버에서 애플릿 클래스가 위치해 있는 디렉토리에 JDBC 드라이 버를 적재 한다. 웹 기반 데이터베이스 연동을 위해서는 Type 3번이나 4번 드라이버를 사용해야 합니다. JDBC 드라이버의 위치는 Client에 JDBC 드라이버를 적재하여 클래스 패스를 설정하고, 서버에 애플릿 클래스가 위치해 있는 디렉토리에 JDBC 드라이버를 적재 한다. Database Laboratory
6
JDBC Driver 종류 각각의 타입에 따라서 JDBC 드라이버의 구현 방법 이 다르며, System independency와 performance 등에 기본적인 차이를 보임 일반적으로 상위 타입으로 갈수록 performance와 independency가 증가 Database Laboratory
7
JDBC Driver Download JDBC 드라이버 검색
JDBC 드라이버를 먼저 검색하여 사용할 DBMS에 맞게 다운로드합니다. Database Laboratory
8
JDBC Driver Download JDBC 드라이버 검색 다양한 벤더들이 제공하는 JDBC 드라이버 정보
다양한 벤더들이 제공하는 드라이버 정보를 확인할수있습니다. Database Laboratory
9
JDBC Driver Download JDBC 드라이버 검색 Microsoft Download MSDN
ang=ko MSDN 드라이버 검색은 마이크로소프트다운로드나 MSDN을 이용합니다. Database Laboratory
10
JDBC Driver Download JDBC 드라이버 검색 Database Laboratory
Sql jdbc라는 검색어로 검색하여 sqljdbc를 다운로드합니다. Database Laboratory
11
JDBC Driver Download JDBC 드라이버 설치
Slef-extarct 형태의 zip압축 파일이 다운로드 되며, 이를 실행하여 압축을 해제 다운받은 파일을 위의 그림의 순서대로 실행합니다. Database Laboratory
12
JDBC Driver 설정 JDBC 드라이버 설치 압축을 해제하고 경로를 확인한다. Database Laboratory
실행한 파일의 경로를 확인합니다. Database Laboratory
13
JDBC Driver 설정 Classpath 설정 [제어판]에서 [시스템]을 통해 [고급 시스템 설정]을 선택한다.
[시스템 속성]창에서 [고급]탭을 선택하고 [환경변수]를 선택한다. 자바 path설정과 마찬가지로 JDBC에 대한 클래스패스를 설정합니다. Database Laboratory
14
JDBC Driver 설정 Classpath 설정 시스템 변수에 새로 만들기를 클릭 하여 MSJDBC라는 변수를 생성한 다.
변수 값은 본인이 설치한 JDBC드 라이버 위치에 존재하는 sqljdbc.jar파일을 써주면 된다. 만일 본인이 jdk 1.6이상의 버전을 사용한다면 sqljdbc4.jar로 설정한 다. 위그림과 같이 변수명과 변수값을 설정하여줍니다. Database Laboratory
15
JDBC Driver 설정 Classpath 설정
Classpath 변수를 편집하여 MSJDBC변수를 Classpath 변수에 등록한다. 클래스패스 변수의 MSJDBC변수를 추가합니다. Database Laboratory
16
JDBC Driver Download (2)
i-net software사의 MS-SQL용 JDBC 드라이버 MERLIA : JDBC 3.0 및 4.0지원 OPTA : JDBC 2.0 과 추가 기능 지원 SPRINTA : JDBC 2.0지원 UNA : JDBC 1.22지원 Database Laboratory
17
JDBC Driver Download (2)
i-net software사의 MS-SQL용 JDBC 드라이버 i-net software사의 MS-SQL용 JDBC 드라이버를 다운로드합니다. Database Laboratory
18
JDBC Driver Download (2)
merlia 드라이버 설치 다운받은 merlia 드라이버 설치합니다. Database Laboratory
19
JDBC Driver 설정 (2) Classpath 설정
시스템 변수에서 새로 만들기를 클 릭하여 MERLIA라는 변수를 생성한 다. 변수값은 본인이 설치한 JDBC드 라이버 위치에 존재하는 Merlia.jar 파일을 적어준다. 시스템변수에서 MERLIA변수를 생성합니다. Database Laboratory
20
JDBC Driver 설정 (2) Classpath 설정
Classpath 변수를 편집하여 MERLIA변수를 Classpath 변수에 등록한다. Classpath 변수를 편집하여 MERLIA변수를 Classpath 변수에 등록합니다. Database Laboratory
21
데이터베이스 연동 실습 CLASSPATH를 설정하였으면, 우선 다음의 URL로 접속하여 간단한 실습 한다.
Appletviewer Tsearch.html SQL Server 에 customer 라는 테이블이 있고, 구조 는 다음과 같다 name age sex Janet 26 f jein 21 jerry 20 m jim 24 tom 30 그럼 위의 URL 에 접속하고, 접속이 안될 경우 ppt 파일과 함께 올려놓은 자료를 다운받아 본인의 폴더에 넣고 command 창에서 파일이 있는 경로의 폴더로 가서 애플릿 뷰어를 실행하여 실습 하시면 됩니다. 간단히 데이터베이스 연동을 실습해보겠습니다. 위의 서버에는 다음과 같은 customer 테이블이 있습니다. Customer 테이블은 이름, 나이, 성 3개의 속성을 가지고 있고, 저장된 정보는 다음과 같습니다. Database Laboratory
22
실 습 1. 전체 검색 Database Laboratory 다음은 전체 검색하는 과정입니다.
검색 조건을 전체로 선택하고 검색 버튼을 누르면 다음과 같은 검색 결과가 나타납니다. 왼쪽은 html, 오른쪽은 cmd 창에서 실행한 모습입니다. Database Laboratory
23
실 습 2. 이름으로 검색 Database Laboratory 다음은 이름검색 입니다.
검색조건을 이름으로 설정하고 검색 할 이름을 jerry 로 한 후 검색 버튼을 누르면 다음과 같은 검색 결과나 나옵니다. 이름, 나이, 성별로 검색은 레포트로 제출하시면 됩니다. Database Laboratory
24
실 습 3. 나이 검색 4. 성별 검색 Database Laboratory
3. 나이 검색 성별 검색 나이검색과 성별 검색도 같은 방법으로 그 검색 결과가 다음과 같습니다. Database Laboratory
25
Applet Program 프로그램을 실행하기 위해서는 다음 조건이 준비되어야 한다.
JDBC 드라이버의 CLASSPATH 설정 접속하는 Database 서버에 자바 class파일과 JDBC 드라이버가 위치해 있어야 한다. [HTML CODE] <BODY> <APPLET CODE = “Tsearch" ARCHIVE=“Merila.jar" CODEBASEhttp://dblab.hallym.ac.kr/jdbc" WIDTH =500 HEIGHT=300> </APPLET> </BODY> CODBASE 접속하는 웹 서버의 디렉토리로 class 파일과 드라이버가 위치한 곳을 가리킨다. [로컬 데이터 베이스에서 작동 할 때는 작성 할 필요가 없다.] ARCHIVE 브라우저에 드라이버를 적재한다. 다음은 애플릿을 실행하기 위한 준비과정을 설명합니다. 프로그램을 실행하기 위해서는 이전 시간에 설명한 바와 같이 다음과 같은 조건이 준비되어 있어야 합니다. 1. JDBC 드라이버의 CLASSPATH 설정 2. 접속하는 Database 서버에 자바 class파일과 JDBC Driver가 위치해 있어야 한다 아래 HTML 코드는 애플릿 프로그램을 실행하기 위한 코드이다. 여기서 codebase 와 archive 태그의 기능은 다음과 같다. codebase 접속하는 웹 서버의 디렉토리로 class 파일과 드라이버가 위치한 곳을 가리킨다. [로컬 데이터 베이스에서 작동 할 때는 작성 할 필요가 없다.] archive 브라우저에 드라이버를 적재한다. Database Laboratory
26
Interface 와 url, user, password
import java.awt.*; import java.awt.event.*; import java.applet.*; import java.sql.*; public class AppletTest extends Applet implements ActionListener { Choice search; // 선택 박스 선언 Label label; // 라벨 선언 TextField textField; // 값을 입력받을 텍스트 필드 선언 TextArea Area; // 결과 값을 출력할 텍스트에리어 선언 Button button; // 검색버튼 선언 private String url = "jdbc:inetdae7:// :2433"; private String user = “id"; private String pass = “password"; 다음은 전체 검색에 대한 전체 소스코드를 살펴봅니다. Database Laboratory
27
JDBC 드라이버 로딩 public void init() { try Class.forName("com.inet.tds.TdsDriver"); } catch (ClassNotFoundException e) System.out.println("Class Loading Failed"); Class.forName클래스를 이용하여 com.tds.TdsDriver 를 불러옵니다. Database Laboratory
28
Interface 설정 public void start() { setLayout(new FlowLayout()); // 레이아웃 배치자 label = new Label("검색 조건"); add(label); search = new Choice(); search.add("전체"); search.add("이름"); search.add("나이"); search.add("성별"); add(search); textField = new TextField(10); add(textField); button = new Button("search"); add(button); Area = new TextArea(10,50); add(Area); button.addActionListener(this); } 다음은 인터페이스를 생성하는 부분이다. Database Laboratory
29
Action event handle public void actionPerformed(ActionEvent ae) {
Connection con = null; Statement stmt = null; String st = ae.getActionCommand(); // 검색버튼의 string 값을 전달 받음 String item = search.getSelectedItem(); // 선택박스에서 선택된 값을 전달 받음 if(st.equals("search")) { String n = textField.getText(); if(item.equals("전체")) // 선택박스에서 ‘전체’ 가 선택 됐을 경우 { TotalgetDBSearch(); // 전체 검색 메소드를 호출 } 버튼이 눌릴 때 일어나는 액션을 처리한다. Database Laboratory
30
전체 검색 메소드 private void TotalgetDBSearch() { Connection con = null;
Statement stmt = null; try { con = DriverManager.getConnection(url,user,pass); con.setCatalog(“DBNAME"); stmt = con.createStatement(); ResultSet result = stmt.executeQuery("SELECT * FROM customer"); // 여기부터 아래 세 번째 까지는 검색 버튼이 클릭될 때 마다 결과 창에 새로운 검색 결과를 보여주기 위하여 이전에 검색한 결과를 지우기 위한 작업이다. String count = Area.getText(); int c = count.length(); Area.replaceText(" ",0,c); 전체 검색하는 TotalgetDBSearch() 메소드를 설명하겠습니다. Where 조건절 없이 Select * from customer 로 전체 데이터를 검색 합니다. Database Laboratory
31
결과 출력 while(result.next()) { String Name = result.getString(1); String age = Integer.toString(result.getInt(2)); String sex = result.getString(3); String value = "이름 : " +Name+ " 나이 : " +age+ " 성별 : “ +sex+ "\n" ; int index = Area.getText().length(); Area.insertText(value,index); // 결과창에 결과값 추가 } con.close(); stmt.close(); }catch(Exception ee) {System.out.println(ee);} } // try-end } // end 검색 결과를 표시하는 부분은 다음과 같습니다. Database Laboratory
32
이름 검색의 질의처리 private void NamegetDBSearch(String n) // 이름 검색 // 사용자가 입력한 이름을 값으로 받는다. { Connection con = null; Statement stmt = null; try con = DriverManager.getConnection(url,user,pass); con.setCatalog("testing"); stmt = con.createStatement(); ResultSet result = stmt.executeQuery("SELECT * FROM customer WHERE name ='"+n+"'"); ……… } Database Laboratory
33
요 약 이번 시간에는 Web 기반의 데이터베이스 연동을 위하여 Type 3번의 JDBC 드라이버를 설치하고, 간단한 응용프 로그램으로 연동하는 과정과 전체 검색부분의 소스코드 를 살펴보았습니다. Database Laboratory
Similar presentations