7 데이터베이스
JDBC (Java Database Connectivity) : 자바나 JSP 로 작성된 프로그램을 데이터베이스 안의 데이터들과 연결하기 위한 응용프로그램 인터페이스(API)이다. JSP – JAVA 프로그램 JDBC API JDBC Driver Manger JDBC 드라이버 JDBC 드라이버 JDBC 드라이버 MS-SQL ORACLE INFORMIX JSP (JavaServer Pages)
JDBC Driver 1 JDBC는 ODBC 와 아주 유사한 형태로 모든 대이터 베이스와 자바프로그램을 연결시켜주는 연결자이다. JDBC 드라이버에는 4가지가 있다. JDBC-ODBC Bridge Driver Native-API partly Java Driver JDBC-Net pure Java Driver Native-protocol pure Java Driver JSP (JavaServer Pages)
JDBC Driver 2 ODBC Driver JDBC- ODBC Bridge JSP Program DataBase JDBC-ODBC Bridge Driver 윈도우 기반 서버의 경우 ODBC를 사용하여 편하게 데이터베이스를 연결 할 수 있다. 이렇게 연결된 데이터베이스를 JDBC-ODBC Bridge를 연결고리로 사용하여 JSP프로그램과 연결할수 있다. 본 교재는 주로 이 드라이버를 사용한다. 사용 DB : MS-ACCESS 이름 : Create21 ODBC Driver JDBC- ODBC Bridge JSP Program DataBase JSP (JavaServer Pages)
JDBC Driver 3 Database Native-API Partly Java Driver JSP Program ODBC를 통하는 앞 경우와는 달리 어플리케이션에 의해서 접근하는 방식이다. 그래서 데이터베이스마다 적합한 언어로 접근하게 되기 때문에 이름에도 ‘Native-API’ 라는 표현을 사용하고 있는 것이다. Database Native-API Partly Java Driver JSP Program DataBase JSP (JavaServer Pages)
JDBC Driver 4 Java Middle Ware 순수 자바 드라이버 JSP Program DataBase JDBC-Net pure Java Driver 하나의 JSP프로그램에 의해 제어되는 데이터베이스가 여러 가지 일 경우 앞의 Native-API partly Java Driver 방식처럼 그 데이터베이스에 맞는 어플리케이션을 만든다면 제어언어도 여러 개 발생하는 경우가 된다. 이런 경우를 대비하여 자바드라이버가 JSP 프로그램의 명령을 받고 가운데 미들웨어(Middle Ware)를 통하여 데이터베이스를 관리하는 방식이다. Java Middle Ware 순수 자바 드라이버 JSP Program DataBase JSP (JavaServer Pages)
JDBC Driver 5 순수 JSP 자바 DataBase Program 프로그램 Native-protocol pure Java Driver 앞의 경우와는 달리 시스템상에 단 하나의 DBMS 만이 있고 프로그램상에서 그 DBMS만을 전용으로 사용한다면 미들웨어가 설치된[JDBC-Net pure Java] 드라이버나 ODBC를 거치는 [JDBC-ODBC Bridge]드라이버를 거쳐야 할 필요가 없다. 전용 드라이버 하나를 만들고 JSP에서 바로 데이터베이스를 제어하면 된다. 이 경우는 성능면이나 속도 면에서 가장유리하기에 각 데이터베이스 벤더들은 자체 드라이버를 만들어 사용한다. 순수 자바 프로그램 JSP Program DataBase JSP (JavaServer Pages)
JDBC 프로그램 수행 1 JDBC드라이버를 메모리로 로딩한다. 위와 같은 자료는 책의 CD-Rom 이나 인터넷으로 검색 및 다운로드가 가능하다. 이와 같은 자료를 인터넷으로 다운로드하여 직접 해당하는 자료를 찾아보도록 하자. 이 자료는 JAVA2SE 의 Documentation으로 자바개발자들이 항상 개발할 때 사용하는 자바 개발의 가장 근본이 되는 문서이다. Class.forName() 을 사용하여 언제든지 드라이버를 로딩할 수 있다. Java.sql 패키지 안에 있다. 예) Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); JSP (JavaServer Pages)
JDK Document설치1 Sun사에서는 개발자들을 위한 문서를 자신의 사이트에서 다운로드해서 볼 수 있도록 지원해주고 있다. 책의 부록 CD에도 도큐먼트파일이 있지만 웹에서 다운 받으면 항상 최신의 도큐먼트를 받을 수 있기 때문에 여기서는 웹에서 다운받는 방법을 알아 볼 것이다. Java.sun.com에 접속하여 오른쪽 화면과 같이 “The Java Platform” 선택상자를 열어본다. 목록 중에 JDK를 선택한다. JSP (JavaServer Pages)
JDK Document설치2 JSP (JavaServer Pages)
JDK Document설치3 JSP (JavaServer Pages)
JDK Document설치4 다운받은 파일이 ZIP파일이기 때문에 필요한 곳에 압축을 푼후 폴더 안으로 들어가 보면 “docs”라는 폴더가 있을 것이다. 다시 그 안으로 들어가보면 html파일들이 있는데 그 중에 “index.html”을 실행시켜 보자. 아래 그림과 같은 화면이 나오면 브라우저에서 “즐겨찾기”에 추가를 시켜놓자. JSP (JavaServer Pages)
JDK Document검색 1 중간에 Java2 Platform API Specification 을 클릭하자. JSP (JavaServer Pages)
JDK Document검색 2 우리가 알아보는 JDBC는 [Java.sql] 패키지 안에 있다. 이 문서의 좌측상단에서 [java.sql] 을 좌측하단에서 [DriverManager] 클래스를 클릭한다. 중간에는 다음과 같은 문구를 찾아볼수 있다. A program can also explicitly load JDBC drivers at any time. For example, the my.sql.Driver is loaded with the following statement: Class.forName("my.sql.Driver"); JSP (JavaServer Pages)
JDBC 프로그램 수행 2 2. 로딩한 드라이버를 DBMS와 연동한다. 3. SQL 문을 DBMS에 전달한다. getConnection 메소드에 3개의 인자(url , user, password) 를 입력하여 DB 와 연결을 시도하는 Connection 객체를 생성할수 있다. Connection dbCon = DriverManager.getConnection(“JDBC URL”,”계정”,”암호”) SQL 문장을 데이터베이스로 보내는데 사용하는 메소드로 createStatement 가 있다. Statement stmt = dbCon.createStatement(); 결과적으로 stmt라는 Statement객체가 dbCon객체에서 만들어진다. JSP (JavaServer Pages)
JDBC 프로그램 수행 3 SQL 문장을 수행할 메소드에는 크게 2가지가 있다. 4. 전달된 SQL 문장을 수행한다. 첫번째로 Select 문처럼 어떤 SQL문을 수행하고 결과를 가져와서 레코드셋을 만들어야 할 경우에는 [executeQuery] 메소드를 사용한다. RecordSet rs = stmt.executeQuery(“SELECT * FROM member”); 두번째로 insert , update, delete 처럼 단지 수행만 하면 되는 경우에는 [executeUpdate] 메소드를 활용하면 된다. int outNum = stmt.executeUpdate(“DELETE FROM member WHERE memberNo=1000”); JSP (JavaServer Pages)
예제 DB 작성(access) 1 1. 데이터 베이스 만들기 게시판의 자료가 저장 될 데이터 베이스와 테이블을 만든다. MS Access로 데이터 베이스 만들기 1. MS Access를 실행한다.[시작-프로그램-MicroSoft Access] 새 데이터 베이스를 만들기 위해 “새 Access 데이터베이스”를 선택한다. JSP (JavaServer Pages)
예제 DB 작성(access) 2 2. 새 데이터 베이스을 파일명을 입력한다. JSP (JavaServer Pages)
예제 DB 작성(access) 3 3. 새 테이블을 만들기 위해 “디자인 보기에서 새 테이블 만들기”를 선택한다. JSP (JavaServer Pages)
예제 DB 작성(access) 4 4.테이블을 디자인한다. 5. 테이블을 저장하기 전에 테이블 이름을 입력한다. JSP (JavaServer Pages)
예제 DB 작성(access) 5 2. ODBC등록하기 “시스템 DSN”을 선택하고 “추가” 버튼을 누른다. JSP (JavaServer Pages)
예제 DB 작성(access) 6 데이터 원본 이름을 입력하고 “선택”버튼을 눌러 데이터 베이스 파일을 선택한다. JSP (JavaServer Pages)
예제 DB 작성(access) 7 시스템 DSN에 추가가 되었다. JSP (JavaServer Pages)
데이터베이스 예제 1(VideoList.jsp) <%@ page contentType="text/html;charset=euc-kr" import="java.sql.*" %> <html> <head><title>출시 비디오 리스트</title></head> <body> <center><B>이번 달 출시 비디오</B></center><br> <% //JDBC드라이버를 로딩한다. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 로딩한 드라이버를 DBMS와 연동한다. String url = "jdbc:odbc:dsn_create21"; Connection dbCon = DriverManager.getConnection(url, "", ""); //SQL문장을 DBMS에 전달한다. String sql = "SELECT VideoNum, Title, Hero, Price FROM VideoList"; Statement stmt = dbCon.createStatement(); // 전달된 SQL문장을 수행한다. ResultSet rs = stmt.executeQuery(sql); JSP (JavaServer Pages)
데이터베이스 예제 2 <table border=0 align=center width=407 bgcolor="white"><tr><td> <table border=0 align=center width=407 bgcolor="#F8F8F1"><tr><td> <center> <table border="0" width="407" cellspacing="0" cellpadding="0"><tr><td> <table border="0" cellpadding="1" cellspacing="1" width="407" bgcolor="#808080" align="center"> <tr bgcolor="#FF9A00" height=26> <td align="center" width=30 > <span style="font-size:9pt;color:white">번호</span></td> <td align="center" width=192> <span style="font-size:9pt;color:white">제 목</span></td> <td align="center" width=140> <span style="font-size:9pt;color:white">주인공</span></td> <td align="center" width=45> <span style="font-size:9pt;color:white">가격</span></td> </tr> JSP (JavaServer Pages)
데이터베이스 예제 3 <% int i=1; //레코드 한 줄마다 다른 색으로 처리하기 위해 변수를 만든다. while(rs.next()) { //해당 레코드를 모두 가져온다. %> <% if (i%2==0) out.println("<tr bgcolor='#F0F0F0'>"); else out.println("<tr bgcolor='#FFFFFF'>"); <td><div align="center"><font size=2><%=rs.getInt("VideoNum")%></font></div></td> <td><div align="center"><font size=2><%=rs.getString("Title")%></font></div></td> <td><div align="center"><font size=2><%=rs.getString("Hero")%></font></div></td> <td><div align="center"><font size=2><%=rs.getString("Price")%></font></div></td> </tr> i++; } rs.close(); // 레코드셋과 데이터베이스 연결을 닫습니다. dbCon.close(); JSP (JavaServer Pages)
데이터베이스 예제 4 작성이 완료되었다면 웹서버에서 http://localhost/Ch7/VideoList.jsp 파일을 불러오자. 아래와 같은 화면이 나온다면 성공한 것이다. JSP (JavaServer Pages)