소프트웨어시스템설계(6주) 데이터베이스 연동

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQLite 소개 및 안드로이드에서의 사용법
DB Injection과 대응방안 nwkim.
DB2 Information Management DB2 UDB CLP Command Summary.
JDBC 연결 Oracle.
웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
13장. 데이터베이스와 JSP 제13장.
제 10 장 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
데이터베이스 설계 및 구축 동물병원 데이터베이스 설계 작성자 : 송영민
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
C#에서 데이터베이스 연동 방법.
Chapter-2. 개발환경 구축하기.
JSP BBS (Bulletin Board System)
JDBC 개요 Section 04 JDBC 개념과 역할 JDBC 구조 애 플 리 케 이 션 오라클 DBMS MySql DBMS
CHAP 11. 데이터베이스와 JSP.
JSP Programming with a Workbook
Chapter 05 SQL 인젝션 공격.
명품 JAVA Programming 제 17 장 JDBC 프로그래밍.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
MySQL performance Xhark 김재홍.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 Bean을 이용한 회원가입 양식 작성하기
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
JDBC 소개 및 설치 슬라이드 노트에 모든 설명을 작성 Database Laboratory.
Chapter 01 데이터베이스 시스템.
11장. 데이터베이스 서버 구축과 운영.
Department of Computer Software MyongJi University
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
구글해킹과 SQL인젝션 지창훈, 최연우.
중 간 고 사 (웹프로그래밍)
Chapter 05 데이터베이스 프로그래밍.
Chapter 07 소스코드의 취약점 분석.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
Database 소개.
데이터베이스와 JDBC 데이터베이스 기본 개념을 이해한다 기본적인 SQL문을 익힌다 오라클 데이터베이스의 사용 방법을 익힌다
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
JSP와 자바 빈즈 JSP 빈즈 구조를 이해하고 활용한다. useBean 액션 활용법을 익힌다.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
20강. 커넥션풀 DAO, DTO PreparedStatement 커넥션 풀(DBCP)
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
2012 인터넷 응용프로그래밍 FTP, MySQL 사용 방법 및 텀 프로젝트용 서버에서 웹페이지 구동 방법 설명
You YoungSEok Oracle 설치 You YoungSEok
ㅇ 스프링 설정파일 (dispatcher-servlet.xml)
JDBC (Java Database Connectivity)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
JSP문법 JSP 기본 구조를 이해한다. 지시어, 스크립트릿 JSP 액션 태그 사용법을 익힌다. 한빛미디어(주)
인터넷응용프로그래밍 과제 실습.
ODBC &DAO 안명상.
JSP 빈즈 1.JSP 빈즈? JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를.
제 11 장 자바빈즈를 이용한 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Mysql.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

소프트웨어시스템설계(6주) 데이터베이스 연동 2008년 10월 9일 실습

개요 실험제목 목표 목차 데이터베이스 연동 JDBC(Java DataBase Connectivity)에 대해 이해한다. JSP에서 JDBC를 이용하여 데이터베이스를 사용하는 방법을 익힌다. 목차 JDBC 프로그래밍의 개요 JDBC APIs

입문 예제 간단한 주소록 출력 예제

DBMS (DataBase Management system) 이론 : JDBC 프로그래밍의 개요 JDBC(Java DataBase Connectivity) 자바 프로그램에서 이기종간의 데이터베이스를 표준화된 방법으로 접속 할 수 있도록 만든 API 규격 JDBC 구조 DBMS (DataBase Management system) 데이터베이스를 구성하고 운영하기 위해 구성된 소프트웨어 시스템 JDBC 드라이버는 해당 DBMS 벤더에서 제공 애플리케이션 오라클 DBMS 오라클 JDBC 드라이버 JCBC 드라이버 관리자 MySQL DBMS MySQL JDBC 드라이버 MSSQL JDBC 드라이버 MSSQL DBMS 애플리케이션은 JDBC 표준 API를 이용 JDBC 드라이버를 로드하여 사용할 수 있도록 하는 역할

이론 : JDBC 프로그래밍 단계(1/4) JDBC 드라이버 로드 데이터 베이스 연결 jdbc.drivers 환경 변수 이용 Class.forName() 이용 데이터 베이스 연결 JDBC URL : 접속하고자 하는 데이터베이스를 특정하기 위한 정보 포함 JDBC 프로그래밍 단계 사용 클래스 JDBC 드라이버 로드 System.setProperty() 또는 Class.forName() 데이터베이스 연결 java.sql.DriverManager Statement 생성 java.sql.Connection SQL문 전송 java.sql.Statement 또는 java.sql.PrepareStatement 결과 받기 java.sql.ResultSet 연결 해제 System.setProperty(“jdbc.drivers”, “com.mysql.jdbc.Driver”); Class.forName(“com.mysql.jdbc.Driver”); JDBC URL의 일반적인 구조 JDBC:<서브 프로토콜>:<데이터 원본 식별자> MySQL JDBC URL JDBC:mysql://[host][:port]/[database]

데이터베이스에서 부여한 권한을 가진 계정의 아이디와 비밀번호 이론 : JDBC 프로그래밍 단계(2/4) 데이터베이스 연결 (이어서) Connection 클래스의 instance에 대한 참조변수 얻기 Statement 와 PreparedStatement Statement Database Connection로부터 SQL 문을 수행할 수 있도록 해주는 클래스 대표적으로 사용되는 method Statement 이용 예 Connection conn = DriverManager.getConnection(JDBC_URL, “아이디”, “비밀번호”); 해당 데이터베이스에 맞게 미리 정의되어 있는 문자열 데이터베이스에서 부여한 권한을 가진 계정의 아이디와 비밀번호 method 설명 executeQuery() SELECT 문을 수행할 때 사용 ResultSet 클래스의 instance를 반환하여, 해당 SELECT문의 결과에 해당하는 데이터에 접근할 수 있는 방법을 제공 executeUpdate() UPDATE, DELETE 과 같은 SQL문을 수행할 때 사용 처리된 데이터의 수를 int 값으로 반환 Statement stmt = conn.createStatement(); stmt.executeUpdate(“INSERT INTO test VALUES (‘” + request.getParameter(“username”) + “’, ‘”+request.getParameter(“email”)+ “’)”);

이론 : JDBC 프로그래밍 단계(3/4) Statement 와 PreparedStatement(이어서) SQL 문을 미리 만들어두고 변수를 따로 입력하는 방식 효율성이나 유지보수 측면에서 유리 Statement 클래스를 상속받기 때문에 Statement 클래스의 모든 method이용 가능 Statement 이용 예 close() method 다른 JDBC 자원과 마찬가지로 Statement와 PreparedStatement 역시 사용을 마친 다음 에는 닫아주어야 함 PreparedStatement pstmt = conn.prepareStatement(“insert into test values(?, ?)”); pstmt.setString(1, request.getParameter(“username”); pstmt.setString(2, request.getParameter(“email”); pstmt.executeUpdat(); SQL 문에서 변수가 와야할 위치에 ?을 적어두고, setXxx() 메소드로 값 설정 Xxx에는 String, int 와 같은 자료형 별로 method존재 stmt.close(); pstmt.close();

이론 : JDBC 프로그래밍 단계(4/4) 결과 받기 연결 해제 SELECT 문을 전송한 경우, ResultSet 객체가 반환됨 ResultSet ResultSet 객체를 이용하여 조회한 결과값에 row 단위로 순차적으로 접근 일반적으로 사용되는 ResultSet 이용 방법 next() method : 다음 row가 있으면 ResultSet 객체가 다음 row를 가리키도록 하고, true값 반환, 다음 row 가 없을 경우 false반환 while문은 이용하여 더 이상 row가 없을 때까지 루프를 돌면서 데이터를 처리 연결 해제 Connecion instance는 반납하지 않으면, 계속 연결을 유지 하므로, 작업이 모두 끝나는 시 점에서 close() method를 호출 ResultSet rs = stmt.executeQuery(“SELECT ...”) ResultSet rs = pstmt.executeQuery(); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { name = rs.getString(1); // 또는 rs.getString(“name”); email = rs.getInt(2); // 또는 rs.getString(“email”); } rs.close(); conn.close();

연습 : 데이터베이스의 준비(1/3) MySQL의 설치와 준비 MySQL GUI Tools 설치 MySQL Connector/J 5.1(MySQL JDBC 드라이버)다운로드 http://dev.mysql.com/downloads/connector/j/5.1.html zip 파일을 다운 받아 압축 해제 mysql-connector-java-5.1.6-bin.jar 파일을 이클립스에서 생성한 프로젝트 폴더의 /WebContenct/WEB-INF/lib 폴더에 복사 예를 들어, 생성한 프로젝트의 이름이 ‘jspages’라면 아래 오그림과 같이, 이클립스의 Project Explorer 상의 WebContenct/WEB-INF/lib에 복사 mysql-connector-java-5.1.6.zip 압축 해제한 폴더 및 파일 MySQL driver 자바 라이브러리 파일 mysql-connector-java-5.1.6-bin.jar

연습 : 데이터베이스의 준비(2/3) 테이블생성(create_table.jsp) (1/2) 한글을 처리하기 위해 characterEncoding property를 url에 추가 ‘euckr’으로 charater Set 지정 데이터베이스 관련 클래스를 사용하기 위해 java.sql의 하위 패키지를 import ID password username, email의 column을 가진 jdbc_test 테이블을 생성하는 create문 euckr로 테이블의 기본 character set지정

연습 : 데이터베이스의 준비(3/3) 테이블생성(create_table.jsp) (2/2) create_table.jsp를 Tomcat 서버에서 실행 MySQL Administrator에서 확인해보면, jdbc_test 테이블이 생성되어 있음 Edit Table버튼을 클력하면, 테이블의 column과 character set확인 가능

연습 : JDBC 프로그래밍 예제(1/3) 이름과 이메일 주소 목록 만들기(jdbctest.jsp) 이 페이지를 처음 실행하면, request 객체는 username이라는 parameter를 갖고 있지 않으므로, null 임을 확인하여 실행하지 않음 빈 문자열인지 확인하여 실행하지 않음 INSERT 문을 이용하여, 이름과 이메일 주소를 데이터베이스에 입력 다음 페이지에 jdbctest.jsp 의 소스코드 이어짐

연습 : JDBC 프로그래밍 예제(2/3) 이름과 이메일 주소 목록 만들기(jdbctest.jsp) jdbc_test에서 username과 email columns을 읽어오도록 SELECT 문사용 executeQuery() method를 실행하여 ResultSet 객체 얻어옴 while문을 돌며, username과 email출력

연습 : JDBC 프로그래밍 예제(3/3) 이름과 이메일 주소 목록 만들기(jdbctest.jsp) 두번째 입력 후 ‘등록’ 클릭 등록이름과 email 주소 입력 후 ‘등록’ 클릭 현재는 등록된 목록이 없음 청와대, webmaster@president.go.kr 입력되어 있음 MySQL Query Browser에서 확인해보면, 두 row가 입력되어 있음 청와대, 네이버가 입력되어 있음

연습문제(1/2) JDBC 프로그래밍 예제(jdbctest.jsp)를 응용하여 데이터베이스에 다음과 같 은 column을 가진 favoritemovies라는 테이블을 만들고, 자신이 좋아하는 영화를 데이터베이스에 입력과 출력을 할 수 있는 페이지를 작성하시오. column Data type name varchar(100) releasedyear varchar(4) actors varchar(200)

category가 ‘회사’인 ‘사장님’은 표시되지 않음 연습문제(2/2) 데이터베이스에 다음의 columns을 가진 ‘address’ 테이블을 만들고, 입출력을 하는 JSP 문서 작성하시오. columns address 테이블의 데이터를 보여줄 때는 SELECT문에 WHERE절을 추가하여 category가 ‘가 족’인 주소만을 출력 category를 입력받을 때는, ‘가족’, ‘친구’, ‘회사’만 입력 받을 수 있도록 <select>태그를 사 용 column Data type name varchar(30) tel varchar(20) address varchar(200) category varchar(4) category가 ‘회사’인 ‘사장님’은 표시되지 않음

요약 JDBC(Java DataBase Connecivity) JDBC 프로그래밍 단계 자바 프로그램에서 이기종간의 데이터베이스를 표준화된 방법으로 접속할 수 있도록 만든 API규격 JDBC 프로그래밍 단계 JDBC 드라이버 로드 System.setProperty() / Class.forName() 데이터베이스연결 java.sql.DriverManager Statement 생성 java.sql.Connection SQL문 전송 java.sql.Statement 등 결과 받기 java.sql.ResultSet 연결 해제 java.sql.ConnectionI MySQL GUI Tools을 이용하면, MySQL 데이터베이스 관리, SQL쿼리 등의 각종 작업을 할 수 있다. MySQL에서 윈도우 환경에서 한글을 사용하기 위해서 테이블을 euc-kr character set으로 만들고, JDBC연결도 euc-kr character set으로 해야 함 JDBC를 사용하기 위해 다음 웹페이지를 참조 Java Standard API Specifiction http://java.sun.com/javase/6/docs/api/ MySQL 5.0 Reference http://dev.mysql.com/doc/refman/5.0/en/ 일반적으로, 데이터베이스 관련 내용은 Java Bean으로 기술하여 사용한다.

실습과제 간단한 로그인 JSP 문서를 만드시오 데이터베이스에 아이디와 비밀번호를 저장할 수 있는 테이블을 생성 아이디와 비밀번호를 입력받아 로그인하는 페이지 작성 아이디와 비밀번호를 등록할 수 있는 가입 페이지로 갈 수 있는 링크가 있어야 함 입력받은 아이디와 비밀번호가 데이터베이스에 있을 경우, session에 아이디를 속성으로 저장하고, 다음 페이지에서 session에서 아이디 속성을 읽어와서 환영 메시지와 함께 출력 아이디와 비밀번호를 입력받아 데이터베이스에 추가하는 페이지 작성 데이터베이스에 아이디와 비밀번호를 추가한 후 로그인 페이지로 이동해야 함 비밀번호를 입력받는 input 태그는 password 타입으로 하며, 두번 입력받아서 제대로 입 력했는지 확인해야 함(String class의 equal() method를 사용)