준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실

Similar documents
JDBC 소개및설치 Database Laboratory

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밊

10.ppt

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

DBMS & SQL Server Installation Database Laboratory

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

빅데이터분산컴퓨팅-5-수정

MySQL-.. 1

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

J2EE Concepts

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - 10Àå.ppt

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

개발문서 Oracle - Clob

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

쉽게

슬라이드 1

Application Programming for Relational Databases

PowerPoint Template

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Microsoft PowerPoint - aj-lecture5.ppt [호환 모드]

Lab 3. 실습문제 (Single linked list)_해답.hwp

PowerPoint Presentation

Microsoft PowerPoint Python-DB

JUNIT 실습및발표

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

17장 클래스와 메소드

Windows 8에서 BioStar 1 설치하기

웹의 뼈대, HTML

1. 데이터베이스프로그래밍의개념 2. PL-SQL 3. 데이터베이스연동자바프로그래밍 4. 데이터베이스연동웹프로그래밍

슬라이드 1

PowerPoint Presentation

슬라이드 1

17장

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft PowerPoint - 2강

Discrete Mathematics

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Application 에서 Parameter 값을받아 JDBC Interface 로보내게되면적절한 JDBC Driver 를통해 SQL 을 Database 로보내주게되고결과를받아서사용자에게보여주게된다. 2-2 JDBC Interface JDBC 의핵심 Interface

Cloud Friendly System Architecture

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PowerPoint Presentation

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

슬라이드 1

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

윈도우시스템프로그래밍

슬라이드 1

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

슬라이드 1

문서 템플릿

강의 개요

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint MySQL 연동.ppt

Microsoft PowerPoint - C++ 5 .pptx

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

쉽게 풀어쓴 C 프로그래밍

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

Ç¥Áö

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Chap7.PDF

제11장 프로세스와 쓰레드

gnu-lee-oop-kor-lec06-3-chap7

슬라이드 제목 없음

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - 27.pptx

<C6F7C6AEB6F5B1B3C0E72E687770>

윈도우즈프로그래밍(1)

Design Issues


쉽게 풀어쓴 C 프로그래밍

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

C# Programming Guide - Types

JAVA PROGRAMMING 실습 05. 객체의 활용

ALTIBASE HDB Patch Notes

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

PowerPoint Presentation

FileMaker ODBC 및 JDBC 가이드

arcplan Enterprise 6 Charting Facelifts

SQL

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

윈도우시스템프로그래밍

Microsoft PowerPoint - 04-UDP Programming.ppt

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

슬라이드 1

Transcription:

JDBC 를통한 SQL 연동 JAVA 프로그래밍

준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실습용서버를사용할것을권장 2

예제데이터베이스의테이블구조 } 예제데이터베이스 Northwind 의 Orders 테이블의스키마는다음과같다. } 실습은이테이블을이용하여진행한다. 3

데이터베이스접속 } 드라이버로딩 } JDK 에는 JDBC 를위한 java.sql.* 클래스들이있다. } 이클래스는 JDBC API 의인터페이스정의에대한것만담고있을뿐, 개별데이터베이스 (MS-SQL, 오라클, mysql 등 ) 와는무관 } 따라서, JAVA 가제공하는 JDBC API 를사용하기위해서는개별데이터베이스에맞게구현된드라이버가있어야함 } JDBC 버전에따라 JDK 요구버전이다름 } JDBC 2.0 은 JDK 1.2 이상 } JDBC 3.0 & 4.0 은 JDK 1.6 이상 4

데이터처리과정 Class.forName } 드라이버검색 DriverManager } Connection 성립 Connection } Session 성립 Statement PreparedStatement } 데이터처리 5

데이터처리의유형 } JDBC 는데이터또는질의를스트링및여러형태로입력받을수있으며, 다음의두가지방식을통해데이터베이스서버와통신한다. } Statement 인터페이스 } SQL 명령을수행하고그결과값을저장하기위한객체 } JDBC 가데이터베이스서버와통신할수있는가장기본적인메소드제공 } PreparedStatement 인터페이스 } Statement 를확장하는인터페이스 } Statement 인터페이스에서상속 6

Statement 인터페이스 } Statement 인터페이스 } 사용법 } Statement 오브젝트를선언후 Connection 객체의 createstatement() 를이용하여현세션에종속되는 Statement 객체생성 Statement stmt = null; stmt = con.createstatement(); String query = SELECT OrderID, CustomerID, EmployeeID FROM orders ; ResultSet rs = stmt.executequery(query); } 한계점 프로그램의성능에영향을줄수있음 반복되는질의가수행되더라도매번질의를해석하는상황이발생할수있어리소스와네트워크트래픽유발가능성이있음 프로그램확장성제한 동적으로조건이변경되더라도 Statement 객체에서는이를효과적으로처리하지못함 7

Statement 인터페이스 } 예제 1 : Staetment 를통한질의처리 1 데이터베이스주소 2 3 4 5 1. JDBC 를위한클래스 2. MS-JDBC 드라이버를통해 MS-SQL 에연결하기위한접근자 3. SQL 서버에서수행할질의 포트번호 DB 명 4. SQL 서버에세션연결을수행할 Connection 인터페이스 5. SQL 명령을수행하고그결과값을저장하기위해정의된 Statement 객체 8

Statement 인터페이스 } 예제 1 : Staetment 를통한질의처리 1 2 계정과암호 3 1. DriverManager 를통한 Connection 성립 Connection 에서는 Session 을성립시킴 2. 데이터처리과정 Statement 를통해질의를수행하고 ResultSet 의결과를반환 ResultSet 의 next() 메소드를통해각 Row 의데이터를가져오고 getxxx() 메소드를통해각 Column 의데이터를지정한타입으로가져옮 next() 를통해더이상참조할결과가없다면 false 를반환 3. 리소스확보를위해연결종료 9

Statement 인터페이스 } 예제 1 : Staetment 를통한질의처리 } 질의문 } Select OrderID, CustomerID, EmployeeID from orders } 소스파일 } Ex1.java } 실행클래스 } Ex1 10

PreparedStatement 인터페이스 } PreparedStatement 인터페이스 } Statement를확장 } Statement로부터상속 } Statement 와다른점 } 컴파일시함께컴파일된 SQL 구문포함 } 변수를받아서처리가능 } 질의문이미리컴파일됨 } Statement 보가빠른질의처리가가능하고다양한질의문을한번의컴파일로처리할수있다. } Statement 보다빠른질의처리가가능하며, 다양한질의를한번의컴파일로처리 11

PreparedStatement 인터페이스 } 예제 2 : PreparedStaetment 를통한질의처리 1. PreparedStatement 를사용하기위한질의 }? 자리에파라미터의값이대체됨 2. PreparedStatement 오브젝트선언 3. 질의문을가지고 PreparedStatement 초기화 } PreparedStatement 는초기화단계에서질의문을가지고있기때문에미리질의를컴파일해서가지고있지만, Statement 는질의를실행시키는과정에서질의문을지정하므로매번질의에대한컴파일이이루어짐 } Statement 의초기화와질의실행 Statement stmt = mycon.createstatement(); ResultSet rs = stmt.executequery(query); } PreparedStatement 의초기화와질의실행 12 PrepareStatement pstmt = mycon.preparedstatement(query); pstmt.setint(1, 4); ResultSet rs = pstmt.executequery();

PreparedStatement 인터페이스 } 예제 2 : PreparedStaetment 를통한질의처리 4. PreparedStatement 를사용한질의의파라미터값지정 } setxxx() 메소드를통해? 자리에대체될파라미터값을지정 } 예제에서는정수형 4 의값을사용할것이기때문에 setint() 메소드를사용하며, 첫번째인자는? 의순서를의미하며, 두번째인자는대체될값을의미함 pstmt.setint(1, 4); pstmt.setstring(2, John ); // 첫번째파라미터를정수 4로지정 // 두번째파라미터를문자열 John 으로지정 13

PreparedStatement 인터페이스 } 예제 2 : PreparedStaetment 를통한질의처리 1 2 3 4 14

PreparedStatement 인터페이스 } 예제 2 : PreparedStaetment 를통한질의처리 } 질의문 } Select OrderID, CustomerID, EmployeeID from orders Where EmployeeID =? } 소스파일 } Ex2.java } 실행클래스 } Ex2 15

커서 (Cursor) } 커서란? } 질의결과집합에서 다음행 이라는개념이없기때문에전체결과집합을커서라는개념으로나타내어순차파일의레코드를사용하는것과유사한방법으로결과집합의개별행을나타낼수있게하는개념 } 커서의역할 } 데이터베이스에서추출한데이터를일련의배열에저장함으로써프로그램에서그내용을필요에맞는양으로나누어검색할수있게한다. } 프로그래머는얼마만큼의데이터가추출되는지상관없이보기에편리한프로그램을작성하도록돕는다. Database Select * from table Row 1 Row 2 Row 3 Row 4 Row 5 Row 6... Cursor 16

커서 (Cursor) } 커서생성예제 Statement stmt = con.createstatement(resultset.type_scroll_sensitive, ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executequery("select cof_name, price FROM coffees"); } 위와같이 createstatement 메소드에상수파라미터를주어다양한특성의커서를사용할수있게한다. 17

커서 (Cursor) } 커서생성파라미터 } createstatement(parameter 1, PARAMETER 2); 파라미터파라미터종류파라미터기능 Parameter 1 Parameter 2 TYPE_SCROLL_SENSITIVE TYPE_SCROLL_INSENSITIVE TYPE_FORWARD_ONLY CONCUR_READ_ONLY CONCUR_UPDATABLE 스크롤가능하며, 데이터베이스의테이블에저장된값에업데이트가발생하면바로반영됨 스크롤가능하며, 데이터베이스의테이블에저장된값에업데이트가발생해도반영되지않음 스크롤이되지않으며, 다음 row 만진행가능 ResultSet 을갱신할수없이읽기만가능 ResultSet 을갱신할수있음 18

커서 (Cursor) } 커서의종류 ( 메소드 ) } next() } 순방향검색 } 커서를다음행으로이동 } previous() } 역방향검색 } 커서를이전행으로이동 } afterlast() } 마지막데이터의다음으로커서를위치시킴 } isafterlast() } 커서의위치가마지막데이터의다음위치인지를판별 19

커서 (Cursor) } 예제 3 : 커서를사용한역방향출력 1 2 1. i-net software 의 JDBC 연결접근자 2. 동적으로사용할데이터베이스가변경이되는경우라면연결접근자가아닌 setcatalog() 메소드로사용할데이터베이스를지정가능 20

커서 (Cursor) } 예제 3 : 커서를사용한역방향출력 1 2 3 1. 커서속성을지정한 Statement 생성 2. 역방향출력을위해가장마지막행의다음으로커서를이동 3. 커서를이전행으로이동, 첫행보다앞이라면 false 를반환 21

커서 (Cursor) } 예제 3 : 커서를사용한역방향출력 } 질의문 } Select OrderID, CustomerID, EmployeeID from orders } 소스파일 } Ex3.java } 실행클래스 } Ex3 22

레코드셋 (RecordSet) } RecordSet 에제공되는메소드 } absolute(n) : n 번째 row 로커서를이동 } deleterow() : 커서가가르키는 row 를삭제 } movetoinsertrow() : 새로운데이터튜플을추가하기위하여예비된공간으로커서를이동 } updatexxx(key, value) : key 에해당하는 column 의값을 value 로변경, movetoinsertrow() 를통해현재커서가새로운튜플을생성중이라면데이터가새로생성됨 } updatestring, updateint 등이있음 } insertrow() : movetoinertrow() 를통해새로운튜플을생성한것을반영 } refreshrow() : 새롭게변경된내용을반영 } 이외에도이전에설명한 next(), previous() 등의메소드와그외다양한메소드들이존재 23

레코드셋 (RecordSet) } 예제 4 : RecordSet 을통한삽입, 삭제, 수정 } 예제 4 에서사용되는 score 테이블의구조및데이터 24 } 예제 4 를수행하기위하여본인의데이터베이스에반드시추가

레코드셋 (RecordSet) } 예제 4 : RecordSet 을통한삽입, 삭제, 수정 1 1. Ex4 클래스객체를사용하여 SQL 서버에접속및질의수행 25

레코드셋 (RecordSet) } 예제 4 : RecordSet 을통한삽입, 삭제, 수정 1 2 1. RecordSet 을통해업데이트가가능하고, 업데이트된내용이 RecordSet 에반영되도록커서를설적 2. RecordSet 을통한삽입, 삭제, 수정의과정 26

레코드셋 (RecordSet) } 예제 4 : RecordSet 을통한삽입, 삭제, 수정 1 2 27 1. RecordSet 에삽입, 삭제, 수정된내용이반영된내용을출력 2. 연결해제를위한메소드

레코드셋 (RecordSet) } 예제 4 : RecordSet 을통한삽입, 삭제, 수정 } 질의문 } Select * from score } 소스파일 } Ex4.java } 실행클래스 } Ex4 28

Statement 인터페이스 } 실습과제 1 } Products 테이블에서 ProductName 이 C 로시작하는모든상품을찾아서 ProductName, UnitPrice, UnitsinStock 그리고 UnitPrice 와 UnitsinStock 을곱하여전체해당상품의전체 Price 를계산하여출력하라. 29

PreparedStatement 인터페이스 } 실습과제 2 } Customers 테이블에서사용자로부터검색하고자하는나라 (Country) 를입력받아 CompanyName, ContactName, Phone 를출력 30

과제 } 제출방법 } 실습및과제를캡쳐후한글, word 파일에캡쳐부분에대한설명과 SQL 구문에간단한주석을넣어서제출하시기바랍니다. } 실습화면캡쳐시자신의학번데이터베이스가보이도록하시기바랍니다. } 파일형식 : [ 분반 ]_ 이름 _ 학번 _6 } 한글 / 워드에캡쳐파일 } 제출형식어길시감점처리 } 제출 : dbcyy1@gmail.com 로제출 } 제출기간 : 11 월 3 일목요일 23 시 59 분까지 31