maria db JDBC PROGRAMMING4

Slides:



Advertisements
Similar presentations
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
Advertisements

컴퓨터와 인터넷.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
최윤정 Java 프로그래밍 클래스 상속 최윤정
JSP Programming with a Workbook
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
13장. 자바빈과 데이터베이스를 연동한 게시판 시스템
Kim heesang JDBC Programming 2 Kim heesang
6장 Mysql 명령어 한빛미디어(주).
MVC 기반 게시판 작성 Youbok Choi.
MySQL 및 Workbench 설치 데이터 베이스.
14장 질의응답 한빛미디어(주).
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
KIM HEESANG JDBC Programming 3 KIM HEESANG
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SELECT empno, ename, job, sal, dname FROM emp, dept
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
OpenGeo Suite 의 한국사용자를 위한 설정 및 활용
14 SQLite DB 활용 B A S I C 1 4_ 고객 등록과 조회 L A B 1 4_ 수정과 삭제를 포함하는 고객관리시스템 Advanced LAB 14_ 탭 메뉴의 고객관리시스템.
KHS JDBC Programming 4 KHS
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
5장 Mysql 데이터베이스 한빛미디어(주).
10장. 예외처리.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
You YoungSEok Oracle 설치 You YoungSEok
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
Method & library.
인터넷응용프로그래밍 JavaScript(Intro).
CHAP 13. 방명록 만들기 실습.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Smart Workplace 개발자 가이드
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Ajax 활용 – Ajax 개요 2008 고급 XML 프로그래밍 임순범.
ADO.NET (SqlConnection, SqlCommand)
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
JSP Programming with a Workbook
서적DB개발 과제 Page 2의 ERD를 통해 구축할 서적 DB의 구조를 파악한다. (4개의 개체에 대해 확인함)
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
maria db JDBC PROGRAMMING 5
CHAP 15. 데이터 스토리지.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

maria db JDBC PROGRAMMING4 장종원 phobos90@naver.COM

회원관리 프로그램 회원 정보를 입력하고 수정, 삭제가 가능한 프로그램 ID(PK) PWD NAME TEL ADDR BIRTH TABLE NAME : TB_MEMBER ID(PK) PWD NAME TEL ADDR BIRTH Varchar(20) Varchar(13) Varchar(100) Varchar(8) JOB GENDER EMAIL INTRO Varchar(50) Varchar(1) Varchar(1000)

MVC(Model View Controller) 디자인 패턴 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 어플리케이션의 역할을 세가지로 구분한 개발 방법론 사용자가 View를 통해 명령을 취하게 되면 Controller로 호출되고 입력된 명령어를 판단하고 행동한다. 이 행동에 따라 Model을 통해 data를 저장 및 불러온다 Model 애플리케이션이의 정보(데이터)를 나타냄 일반적으로 데이터베이스를 지칭 View 클라이언트 화면(GUI) 웹에서의 html, css, javascript 등 Controller 사용자의 요청사항을 파악해 그에 맞는 데이터를 Model에 의뢰하고 View에 반영해 사용자에게 전달

MVC에서 Model은 3가지로 나눌 수 있음 DTO(Data Transfer Object) 계층간 데이터 교환을 위한 객체(데이터를 주고받을 포맷) Database(Model)에 접근하는데 이용(데이터베이스의 레코드를 매핑하기 위한 객체) 로직을 가지고 있지 않고 data와 그 data에 접근하기 위한 getter/setter 메소드만 가지고 있음 DB에서 Data를 얻어 Service 나 Controller 로 보낼 때 사용하는 객체 DAO(Data Access Object) 데이터 접근 객체 DB를 사용해 데이터를 조작하는 기능을 담당하는 것들을 DAO라고 부른다 DB 처리(select, insert, update, delete) 비즈니스 로직이나 DB와 관련 없는 코드들을 분리하기 위해 사용 Service 비즈니스 로직이 들어가는 부분 비즈니스 로직이란 업무에 필요한 데이터처리를 수행하는 응용프로그램의 일부를 말한다. 예를 들어) DB에는 부가세가 포함되지 않고 저장되어 있는데, 최종적으로 사용자에게는 부가세를 포함하여 자료를 보여주어야 할 때, 이를 처리하는 과정을 의미한다고 할 수 있음 Controller 에게 요청을 받아 해당되는 비즈니스 로직을 처리 DAO로 DB에 접근, DTO로서 데이터를 전달받은 다음 해당 일을 처리한 후 반환한다.

제작할 Class Member_List – 회원 리스트 출력 GUI MemberProc – 회원가입 창, 회원정보 수정 창 GUI MemberDAO – 데이터베이스 접근 객체 MemberDTO – DB에 접근하기 위한 한 명의 회원 정보를 저장 Main – 메인함수의 역할

PreparedStatement vs Statement 가독성과 유지보수가 좋다 객체를 생성할 때 인자 값으로 실행할 SQL문을 지정하는데, 값을 동적으로 지정해야 할 때 ?기호로 대체할 수 있음 Statement 구문같은 경우 “와 String값의 짝을 맞춰줘야 하는데 실수로 인한 오류가 잦음 PreparedStatement는 값 부분을 ?기호로 대체하여 아래에서 set메소드를 이용해 ?자리의 값을 지정 쿼리 실행계획이 재사용된다 PreparedStatement는 효율을 높이기 위해 parse과정을 최초 한번만 수행하고 이후에는 생략함. parse 과정을 거친 후 생성된 결과는 메모리에 저장해두고 필요할 때 사용하며, 자주 변경되는 부분을 ?로 두고 필요한 값을 바인딩하여 사용 SQL 인젝션 취약점을 보완할 수 있음 예를 들어, 게시판에서 select로 유저의 정보를 가져오는 곳에서 Statement 구문 사용시 select * from user where id = ‘1’ and pwd = ‘22’; 라고 한다면 select * from user where id = ‘ ‘ or 1=1 –- ‘ and pwd=‘null’; 식으로 모든 유저의 정보를 가져올 수 있다. PreparedStatement는 parse 과정을 최초 1번만 수행하고 이후에는 생략하기 때문에 바인딩 데이터는 문법적 의미를 가질 수 없기에 안전하다. Statement 구문 PreparedStatement 구문

MemberDTO

MemberDAO

MemberDAO

MemberDAO

MemberDAO

MemberDAO

MemberDAO

Member_List

Member_List

Member_List

Member_List

Main

MemberProc 첨부파일 다운 받아주세요. GUI 부분이 대부분이고 코드가 너무 길어 따로 첨부합니다.

과제 메인 화면의 누락된 리스트를 정상적으로 출력하게 변경하세요. DB에서 TB_MEMBER를 2개의 Table로 분해하세요 MemberDAO에서 getMemberList, insertMember, updateMember함수를 정상적으로 고치세요. 현재 Id, pwd, name, tel만 입력되므로, 나머지 값들도 정상적으로 입력되게 하세요. DB에서 TB_MEMBER를 2개의 Table로 분해하세요 CREATE TABLE TB_STAFF(id varchar(12) NOT NULL, pwd varchar(12) NOT NULL, name varchar(16) NOT NULL, PRIMARY KEY(id)); CREATE TABLE TB_STAFF_INFO(id varchar(12) NOT NULL, tel varchar(13), addr varchar(100), birth varchar(8), job varchar(50), gender varchar(1), email varchar(50), intro VARCHAR(4000), PRIMARY KEY(email), FOREIGN KEY(id) REFERENCES TB_STAFF(id)); MemberDAO에서 TB_MEMBER를 새로운 테이블로 변경 후 JOIN을 이용한 SELECT와 INSERT, DELETE SQL로 변경하세요.