IT CookBook, SQL Server 로배우는데이터베이스개론과실습 [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다.
Chapter5. 데이터베이스응용 SQL Server 로배우는데이터베이스개론과실습
1. 데이터베이스프로그래밍의개념 2. T-SQL 3. 데이터베이스연동자바프로그래밍 4. 데이터베이스연동웹프로그래밍
데이터베이스프로그래밍의개념을이해한다. T-SQL의문법과사용방법을알아본다. 자바프로그램과데이터베이스를연동하는방법을알아본다. JSP 프로그램과데이터베이스를연동하는방법을알아본다.
01. 데이터베이스프로그래밍의개념 프로그래밍 이란프로그램을설계하고소스코드를작성하여디버깅하는과정을말한다. 데이터베이스프로그래밍이란 DBMS에데이터를정의하고저장된데이터를읽어와데이터를변경하는프로그램을작성하는과정을말한다. 일반프로그래밍과는데이터베이스언어인 SQL을포함한다는점이다르다. SQL Interface (SQL) 응용프로그램 (SQL + 자바 ) DBMS DBMS DB DB (a) SQL Interface (b) 삽입프로그래밍 그림 5-1 데이터베이스프로그래밍
01. 데이터베이스프로그래밍의개념 데이터베이스프로그래밍방법 SQL 전용언어를사용하는방법 SQL 자체의기능을확장하여변수, 제어, 입출력등의기능을추가한새로운언어를사용하는방법이다. SQL Server 는 T-SQL 이라는언어를사용하며, Oracle 은 PL/SQL 이라는언어를사용한다. 일반프로그래밍언어에 SQL 을삽입하여사용하는방법 호스트언어가자바, C, C++ 등일반프로그래밍언어인경우다. 일반프로그래밍언어로작성된응용프로 그램에서데이터베이스에저장된데이터를관리, 검색한다. 삽입된 SQL 문은 DBMS 의컴파일러가처리한다. 웹프로그래밍언어에 SQL 을삽입하여사용하는방법 호스트언어가 JSP, ASP, PHP 등웹스크립트언어인경우다. 4GL(4th Generation Language) 데이터베이스관리기능과비주얼프로그래밍기능을갖춘 GUI 기반소프트웨어개발도구 를사용하여프 로그래밍하는방법이다. Delphi, Power Builder, Visual Basic 등이있다.
01. 데이터베이스프로그래밍의개념 프로그램환경 일반프로그래밍언어 자바 C, C++ 웹프로그래밍언어 JSP, ASP PHP SQL 전용언어 T-SQL PL/SQL Delphi VB 4GL 모바일 Object C Android SDK DBMS 계층 Access SQL Server Oracle MySQL DB2 SQLite 파일시스템 DB DB DB DB DB DB 운영체제계층 윈도우리눅스유닉스 하드웨어계층 인텔 HP Sun IBM 그림 5-2 DBMS 플랫폼과데이터베이스프로그래밍유형
01. 데이터베이스프로그래밍의개념 표 5-1 DBMS 의종류와특징 Access SQL Server Oracle MySQL DB2 SQLite 제조사 마이크로소프트사 마이크로소프트사 오라클사 오라클사 IBM 사 리처드힙 ( 오픈소스 ) 운영체제기반 윈도우 윈도우 윈도우, 유닉스, 리눅스 윈도우, 유닉스, 리눅스 유닉스 모바일 OS ( 안드로이드, ios 등 ) 특징 개인용 DBMS 윈도우기반기업용 DBMS 대용량데이터베이스를위한응용 소용량데이터베이스를위한응용 대용량데이터베이스를위한응용 모바일전용데이터베이스
02. T-SQL 프로시져 트리거 사용자정의함수 T-SQL 문법요약
02. T-SQL T-SQL은 Transact-SQL의줄임말로데이터베이스응용프로그램을작성하는데사용하는 SQL Server의 SQL 전용언어다. SQL 전용언어는 SQL 문에변수, 제어, 입출력등의프로그래밍기능을추가하여 SQL 만으로처리하기어려운문제를해결한다. T-SQL은 SQL Server Management Studio 창에서바로작성하고컴파일한후결과를실행한다. 프로그래머 DBMS(SQL Server) T-SQL 개발환경 5 DB 그림 5-3 T-SQL 개발환경
2.1 프로시저 실행 구문분석 프로시저정의 객체확인 실행결과 그림 5-4 프로시저를정의하는과정
2.1 프로시저 프로시저를정의하려면 CREATE PROCEDURE 문을사용한다. 정의방법 변수와매개변수는 @ 기호로식별한다. 예를들어 price는열이름이지만 @price는 T-SQL 변수이거나매개변수다. 매개변수 (parameter) 는저장프로시저가호출될때그프로시저에전달되는값이다. 변수 (variable) 는저장프로시저나트리거내에서사용되는값이다. 소스코드에대한설명문은 /* 와 */ 사이에기술한다. 만약설명문이한줄이면이중대시 (--) 기호다음에기술해도된다.
2.1.1 삽입작업을하는프로시저 프로시저로데이터를삽입작업을하면좀더복잡한조건의삽입작업을인자값만바꾸어수 행할수도있고, 저장해두었다가필요할때마다호출하여사용할수도있다. 예제 5-1 Book 테이블에한개의투플을삽입하는프로시저 (InsertBook) 01 USE Madang -- Madang 데이터베이스내부에프로시저를정의 02 DROP PROCEDURE InsertBook -- 기존에정의된프로시저가있으면삭제 03 GO 04 05 -- InsertBook 프로시저정의 06 CREATE PROCEDURE InsertBook(@BookID INT, @BookName VARCHAR(40), 07 @Publisher VARCHAR(40), @Price INT) AS 08 BEGIN 09 INSERT INTO dbo.book(bookid, bookname, publisher, price) 10 VALUES (@BookID, @BookName, @Publisher, @Price); 11 END 12 GO 13 14 -- InsertBook 프로시저를실행하여 Book 테이블에투플을삽입하고결과확인 15 EXEC InsertBook 13, " 스포츠과학 ", " 마당과학서적 ", 25000 16 SELECT * FROM Book; -- 13번투플삽입결과확인 17 GO
2.1.1 삽입작업을하는프로시저 그림 5-5 InsertBook 프로시저를실행한후 Book 테이블
2.1.2 제어문을사용하는프로시저 T-SQL 의제어문은어떤조건에서어떤코드가실행되어야하는지를제어하기위한 문법으로, 절차적언어의구성요소를포함한다. 표 5-2 T-SQL 의제어문 구문의미문법 BEGIN-END T-SQL 문을블록화시킴 중첩가능 BEGIN { SQL 문 } END IF-ELSE 조건의검사결과에따라문장을선택적으로수행 IF < 조건 > SQL 문 [ ELSE SQL 문 ] WHILE 조건이참일경우 WHILE 문의블록을실행 WHILE < 조건 > { SQL 문 BREAK CONTINUE } RETURN 프로시저를종료 상태값을정수로반환가능 RETURN [ < 정수 > ]
2.1.2 제어문을사용하는프로시저 예제 5-2 동일한도서가있는지점검한후삽입하는프로시저 (BookInsertOrUpdate) 01 USE madang -- Madang 데이터베이스내부에프로시저를정의 02 DROP PROCEDURE BookInsertOrUpdate -- 기존에정의된프로시저가있으면삭제 03 GO 04 05 -- BookInsertOrUpdate 프로시저정의 06 CREATE PROCEDURE BookInsertOrUpdate(@myBookID INT, 07 @mybookname VARCHAR(40), @mypublisher VARCHAR(40), @myprice INT) AS 08 BEGIN 09 IF EXISTS (SELECT * FROM Book WHERE bookname = @mybookname) 10 UPDATE Book SET price = @myprice 11 WHERE bookname = @mybookname; 12 ELSE 13 INSERT INTO Book(bookid, bookname, publisher, price) 14 SELECT @mybookid, @mybookname, @mypublisher, @myprice; 15 IF @@Error <> 0 RAISERROR ('BOOK 테이블삽입오류 ', 16, 1) 16 END 17 GO 18 19 -- BookInsertOrUpdate 프로시저를실행하여 Book 테이블에 13번투플을삽입하거나변경 20 EXEC BookInsertOrUpdate 13, " 스포츠과학 ", " 마당과학서적 ", 23000 21 SELECT * FROM Book; -- 13번투플삽입결과확인 22 GO
2.1.2 제어문을사용하는프로시저 그림 5-6 BookInsertUpdate 프로시저를실행한후 Book 테이블
2.1.3 결과를반환하는프로시저 예제 5-3 Book 테이블에저장된도서의평균가격을반환하는프로시저 (AveragePrice) 01 USE Madang -- Madang 데이터베이스내부에프로시저를정의 02 DROP PROCEDURE AveragePrice -- 기존에정의된프로시저가있으면삭제 03 GO 04 05 -- AveragePrice 프로시저정의 06 CREATE PROCEDURE AveragePrice @AverageVal INT OUTPUT AS 07 BEGIN 08 SET @AverageVal = (SELECT AVG(price) FROM Book 09 WHERE price IS NOT NULL); 10 END 11 GO 12 13 -- AveragePrice 프로시저를실행하여 Book 테이블에저장된도서의평균가격을구함 14 DECLARE @Avg INT -- 변수선언 15 EXEC AveragePrice @AverageVal = @Avg OUTPUT 16 SELECT @Avg ' 책값평균 ' -- 변수 Avg 를출력하여확인 17 GO 그림 5-7 AveragePrice 프로시저를실행한결과
2.1.4 커서를사용하는프로시저 커서 (cursor) 는실행결과테이블을한번에한행씩처리하기위하여테이블의행 을순서대로가리키는데사용한다. 표 5-3 커서와관련된키워드 키워드 역할 DECLARE OPEN FETCH CLOSE DEALLOCATE 커서를생성커서의사용을시작행데이터를가져옴커서의사용을끝냄 DBMS에서커서를제거 커서를사용하여 Orders 테이블의판매도서에대한이익금을계산하는프로시저 를작성해보자. 도서의가격이 30,000 원이상이면이익이 10% 이고, 30,000 원미만 이면 5% 이다.
2.1.4 커서를사용하는프로시저 예제 5-4 Orders 테이블의판매도서에대한이익을계산하는프로시저 (Interest) 01 USE Madang -- Madang 데이터베이스내부에프로시저를정의 02 DROP PROCEDURE Interest -- 기존에정의된프로시저가있으면삭제 03 GO 04 05 -- Interest 프로시저정의 06 CREATE PROCEDURE Interest AS 07 BEGIN 08 DECLARE @myinterest AS NUMERIC(10,1) 09 DECLARE @Price AS INT 10 SET @myinterest = 0.0 11 DECLARE InterestCursor CURSOR FOR 12 SELECT saleprice FROM Orders; 13 OPEN InterestCursor 14 FETCH NEXT FROM InterestCursor INTO @Price; 15 WHILE @@FETCH_STATUS=0 16 BEGIN 17 IF @Price >= 30000 18 SET @myinterest = @myinterest + @Price * 0.1; 19 ELSE SET @myinterest = @myinterest + @Price * 0.05; 20 FETCH NEXT FROM InterestCursor INTO @Price; 21 END 22 CLOSE InterestCursor; 23 DEALLOCATE InterestCursor; 24 PRINT ' 전체이익금액 = '+ CONVERT(CHAR(15), @myinterest); 25 END 26 GO 27 28 -- Interest 프로시저실행하여판매된도서에대한이익금을계산 29 EXEC Interest; 30 GO
2.1.4 커서를사용하는프로시저 그림 5-8 Interest 프로시저를실행한결과
2.2 트리거 트리거 (trigger) 는데이터의변경 (INSERT, DELETE, UPDATE) 문이실행될때자동 으로따라서실행되는프로시저를말한다. INSTEAD OF 트리거 DATA 변경문 (INSERT, DELETE, UPDATE) AFTER 트리거 그림 5-9 데이터변경과트리거의수행
2.2 트리거 예제 5-5 새로운도서의가격이미정인경우자동으로같은출판사도서의평균값을넣어주는트리거 (AfterInsertBook) 01 USE Madang -- Madang 데이터베이스내부에트리거를정의 02 DROP TRIGGER AfterInsertBook -- 기존에정의된트리거가있으면삭제 03 GO 04 05 -- AfterInterestBook 트리거정의 06 CREATE TRIGGER AfterInsertBook ON Book AFTER INSERT AS 07 BEGIN 08 DECLARE @mykey AS INT 09 DECLARE @myprice AS INT 10 DECLARE @mypublisher AS VARCHAR(40) 11 DECLARE @average AS INT 12 SELECT @mykey=bookid, @myprice=price, @mypublisher=publisher 13 FROM Inserted; 14 SET @average=(select avg(price) FROM Book 15 WHERE publisher LIKE @mypublisher); 16 IF (@myprice = 0) 17 BEGIN 18 UPDATE Book SET price=@average WHERE bookid=@mykey 19 PRINT ' 책가격을출판사평균가격 '+ 20 CONVERT(CHAR(8), @average)+ ' 으로초기화하였습니다.'; 21 END 22 END 23 GO 24 25 -- 두권을삽입하여트리거의실행결과를비교 26 INSERT INTO Book VALUES(14, ' 스포츠과학1', ' 이상미디어 ', 0); 27 INSERT INTO Book VALUES(15, ' 스포츠과학2', ' 이상미디어 ', 20000); 28 SELECT * FROM Book; -- 결과확인 29 GO
2.2 트리거 그림 5-10 Book 테이블에투플을삽입하여트리거가실행된결과
2.3 사용자정의함수 사용자정의함수는수학의함수와마찬가지로입력된값을가공하여결과값을되 돌려준다. 예제 5-6 판매된도서에대한이익을계산하는함수 (fnc_interest) 01 USE Madang -- Madang 데이터베이스내부에함수정의 02 DROP FUNCTION fnc_interest -- 기존에정의된함수가있으면삭제 03 GO 04 05 -- 스칼라사용자함수 fnc_interest 정의 06 CREATE FUNCTION fnc_interest ( @Price INT) 07 RETURNS INT 08 AS 09 BEGIN 10 DECLARE @myinterest INT 11 -- 가격이 30,000 원이상이면 10%, 30,000 원미만이면 5% 12 IF @Price >= 30000 13 SET @myinterest = @Price * 0.1; 14 ELSE SET @myinterest = @Price * 0.05; 15 RETURN @myinterest 16 END 17 GO 18 19 -- Orders 테이블에서각주문에대한이익을출력 20 SELECT custid,orderid,saleprice,dbo.fnc_interest(saleprice) interest FROM 21 Orders;
2.3 사용자정의함수 그림 5-11 Orders 테이블의건별이익금계산
2.3 사용자정의함수 표 5-4 프로시저, 트리거, 사용자정의함수의공통점과차이점 프로시저트리거사용자정의함수 공통점 저장프로시저, T-SQL 로작성 정의방법 CREATE PROCEDURE 문 CREATE TRIGGER 문 CREATE FUNCTION 문 호출방법 EXEC 문으로직접호출 INSERT, DELETE, UPDATE 문이실행될때자동으로실행됨 SELECT 문으로호출 기능의차이 SQL 문으로할수없는복잡한 로직을수행 기본값제공, 데이터제약준수, SQL 뷰의수정, 참조무결성작업 등을수행 속성값을가공하여반환, SQL 문에직접사용
2.4 T-SQL 문법요약 표 5-5 T-SQL 의기본문법 구분 Data Definition Language ( 데이터정의어 ) Data Manipulation Language ( 데이터조작어 ) CREATE DATABASE CREATE PROCEDURE CREATE TRIGGER ALTER SELECT DELETE 명령어 CREATE TABLE CREATE FUNCTION DROP INSERT UPDATE Data Types( 데이터타입 ) Variables( 변수 ) CHAR(n), VARCHAR(n), INT NUMERIC(p,s), DATE, TIME @ 를사용 DECLARE 문으로선언 SET 문으로치환 Operator( 연산자 ) 산술연산자 (+, -, *, /, %) 비교연산자 (=, <, >, >=, <=, <>) 문자열연산자 (+) 논리연산자 (NOT, AND, OR) Language Element( 주석 ) - -, /* */ Built-in Function( 내장함수 ) Control of Flow( 제어문 ) Data Control Language ( 데이터제어어 ) 집계함수 (AVG, COUNT, MAX, MIN, SUM) 날짜함수 (SYSDATETIME, GETDATE) 문자열함수 (CHAR, LEN, LOWER, SUBSTRING) BEGIN-END IF-ELSE CASE-END WHILE...BREAK/CONTINUE GOTO GRANT DENY REVOKE
03. 데이터베이스연동자바프로그래밍 소스코드설명 프로그램실습
03 데이터베이스연동자바프로그래밍 표 5-6 데이터베이스연동자바프로그래밍실습환경 항목 프로그램 데이터베이스프로그램 SQLServer 2012 자바컴파일러 JDK 버전 7 데이터베이스와자바를연결하는드라이버 JDBC 드라이버 ( 파일이름 sqljdbc4.jar)
3.1 소스코드설명 표 5-7 데이터베이스접속자바클래스 (java.sql) 클래스구분클래스혹은인터페이스주요메소드이름메소드설명 java.lang Class Class forname(< 클래스이름 >) < 클래스이름 > 의 JDBC 드라이버를로딩 DriverManager Connection getconnection (url, user, password) 데이터베이스 Connection 객체를생성 Connection Statement createstatement() void close() SQL 문을실행하는 Statement 객체를생성 Connection 객체연결을종료 java.sql Statement ResultSet executequery (String sql) ResultSet executeupdate (String sql) SQL 문을실행해서 ResultSet 객체를생성 INSERT/DELETE/UPDATE 문을실행해서 ResultSet 객체를생성 boolean first() 결과테이블에서커서가처음투플을가리킴 ResultSet boolean next() int getint(<int>) 결과테이블에서커서가다음투플을가리킴 <int> 가가리키는열값을정수로반환 String getstring(<int>) <int> 가가리키는열값을문자열로반환
3.1 소스코드설명 SQL Server DBMS Driver Manager 객체 Connection 객체 Statement 객체 ResultSet 객체 데이터베이스 (Madang) 자바프로그램 자바프로그램 (a) 자바의데이터베이스연동객체 ResultSet SQL Statement Driver manager Connection DB 처리 ResultSet SQL Statement Connection DB 처리 (b) 객체간의호출순서 그림 5-12 데이터베이스연결자바객체들의호출관계
3.2 프로그램실습 표 5-8 자바프로그램실습단계 단계세부단계프로그램참조 [1 단계 ] DBMS 설치및환경설정 1 SQL Server 2012 설치 2 SQL 접속을위한사용자인증 (sa 관리자 ) 설정 3 DBMS 를접속하는포트설정 SQL Server 부록 A.1~A.3 [2 단계 ] 데이터베이스준비 1 Madang 데이터베이스준비부록 A.4 1 자바컴파일러설치 (A) 명령프롬프트이용 2 JDBC 드라이버설치 3 자바프로그램준비 (booklist.java) JDK JDBC 부록 B.1~B.3 [3 단계 ] 4 컴파일및실행 자바실행 (B) 이클립스이용 1 자바와이클립스개발도구설치 2 JDBC 드라이버설치 3 자바프로그램준비 (booklist.java) 4 컴파일및실행 JDK Eclipse JDBC 부록 B.1~B.4
3.2 프로그램실습 1 단계 - 2 SQL 사용자인증 (sa, mduser) 1 단계 -3 3 단계 -4 3 단계 -3 PORT 1433 번 자바 CLASS 자바프로그램 1 단계 -1 DBMS(SQL Server) 1 단계 - 2 데이터베이스 (Madang) JDBC Library + 자바컴파일러 3 단계 -2 3 단계 -1 그림 5-14 데이터베이스연동자바프로그램의실행흐름도
3.2.1 [1 단계 ] DBMS 설치및환경설정 SQL Server 2012 설치 SQL 접속을위한사용자인증 (sa 관리자 ) 설정 만약접속되지않는다면다음과같이설정하면된다. Windows 인증으로로그인
3.2.1 [1 단계 ] DBMS 설치및환경설정 인증모드를혼합모드로변경
3.2.1 [1 단계 ] DBMS 설치및환경설정 혼합모드의암호설정
3.2.1 [1 단계 ] DBMS 설치및환경설정 SQL Server 다시시작 DBMS 를접속하는포트설정 DBMS 를외부프로그램에서접속하기위해서는 SQL Server 서버에서사용하는 TCP/IP 포트 를설정해주어야한다.
3.2.2 [2 단계 ] 데이터베이스준비 Madang 데이터베이스준비 Madang 데이터베이스의샘플데이터는이미 3 장에서설치하였다. 이책의순서대로실습을진 행하지않았다면부록 A.4 를참고하여설치하기바란다.
3.2.3 [3 단계 (A)] 자바실행 명령프롬프트를이용하는방법 자바컴파일러설치 부록 B.1~B.2 를참고하여설치한다. JDBC 드라이버설치 부록 B.3 을참고하여설치한다. 자바프로그램준비 (booklist.java) booklist.java 프로그램의소스코드는앞에서설명하였다. booklist.java 파일은메모장에서작성 하거나예제소스폴더의 booklist.java 를가져와사용한다.
3.2.3 [3 단계 (A)] 자바실행 명령프롬프트를이용하는방법 컴파일및실행 C:\Users\Madang>cd c:\database cd(change directory) 는명령프롬프트에서폴더간의이동을뜻한다. 앞서생성한 C 드라이브에 database 폴더 로이동한다. C:\database>javac booklist.java booklist.java 를컴파일한다. javac 는자바컴파일명령어로, 컴파일한후클래스파일인 booklist.class 가생성된다. C:\database>javac booklist.java booklist 를실행한다. java 는자바실행명령어다.
3.2.4 [3 단계 (B)] 자바실행 이클립스를이용하는방법 이클립스개발도구설치 부록 B.4 를참고하여설치한다. JDBC 드라이버설치 부록 B.3 을참고하여설치한다. 자바프로그램준비 (booklist.java) booklist.java 파일은메모장에서작성하거나예제소스폴더의 booklist.java 를가져와사용한다. 준비된파일은 C 드라이브에 database 폴더를생성한후저장한다.
3.2.4 [3 단계 (B)] 자바실행 이클립스를이용하는방법 새프로젝트생성
3.2.4 [3 단계 (B)] 자바실행 이클립스를이용하는방법 booklist.java 선택
3.2.4 [3 단계 (B)] 자바실행 이클립스를이용하는방법 sqljdbc4.jar 선택
3.2.4 [3 단계 (B)] 자바실행 이클립스를이용하는방법 컴파일및실행 그림 5-23 이클립스에서 booklist.java 실행결과화면
04. 데이터베이스연동웹프로그래밍 소스코드설명 프로그램실습
04. 데이터베이스연동웹프로그래밍 표 5-9 데이터베이스연동웹프로그래밍실습환경 항복 프로그램 데이터베이스프로그램 SQL Server 2012 자바컴파일러 JDK 버전 7 웹서버 톰캣 데이터베이스와자바를연결하는드라이버 JDBC 드라이버 ( 파일이름 sqljdbc4.jar)
4.1 소스코드설명 JSP 프로그램은 HTML 태그에 JSP 스크립트를끼워넣어작성하는데, JSP 스크립 트부분은 <%... %> 에넣어서실행시킨다. booklist.jsp bookview.jsp 웹서버 ( 톰캣 ) booklist.jsp 프로그램 bookview.jsp 프로그램 그림 5-24 booklist.jsp 와 bookview.jsp 의호출관계와웹에서실행된화면
4.2 프로그램실습 표 5-10 JSP 프로그램실습단계 단계세부단계프로그램참조 [1 단계 ] DBMS 설치및환경설정 1 SQL Server 2012 설치 2 SQL 접속을위한사용자인증 (sa 관리자 ) 설정 3 DBMS 를접속하는포트설정 SQL Server 부록 A.1~A.3 [2 단계 ] 데이터베이스준비 1 Madang 데이터베이스준비부록 A.4 1 자바컴파일러, 톰캣설치 [3 단계 ] JSP 실행 2 JDBC 드라이버설치 3 JSP 프로그램준비 (booklist.jsp, bookview.jsp) 톰캣 JDBC 부록 B.1~B.3 부록 B.5 4 실행
4.2 프로그램실습 1 단계 - 2 SQL 사용자인증 (sa, mduser) 1 단계 -3 3 단계 - 3 3 단계 - 4 PORT 1433 번 JSP 프로그램 웹브라우저 1 단계 -1 DBMS(SQL Server) 1 단계 - 2 데이터베이스 (Madang) JDBC Library + 자바컴파일러, 톰캣 3 단계 -2 3 단계 -1 그림 5-14 데이터베이스연동 JSP 프로그램의실행흐름도
4.2 프로그램실습 [1 단계 ] DBMS 설치및환경설정 [2 단계 ] 데이터베이스준비 [3 단계 ] JSP 실행 자바컴파일러, JDBC 드라이버설치 톰캣설치 부록 B.5 를참고하여설치한다.
4.2 프로그램실습 JSP 프로그램준비 (booklist.jsp, bookview.jsp) booklist.jsp 파일과 bookview.jsp 파일을예제소스에서가져와사용한다. 작성된프로그램은톰캣기본폴더에 booklist 폴더를생성하고저장한다. 그림 5-26 booklist.jsp, bookview.jsp 파일저장
4.2 프로그램실습 실행 그림 5-27 booklist.jsp 실행화면 그림 5-28 bookview.jsp 실행화면
요약 1. 데이터베이스프로그래밍 2. 삽입프로그래밍 3. 호스트언어 4. T-SQL(Transact-SQL) 5. 프로시저 6. 커서 7. 트리거 8. 연동 9. 인증모드 10. JDBC(Java Database Connectivity)
SQL Server 로배우는데이터베이스개론과실습