방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명.

Slides:



Advertisements
Similar presentations
19 augustus 2003augustus 2003 JSP-2. BICT 2JDBC BICT 3Install MySQL Download MySQL daemon – Free – Windows version… Start Daemon – Mysqld-nt.exe Download.
Advertisements

1 JDBC: Java Database Connectivity. 2 Introduction to JDBC JDBC is used for accessing databases from Java applications Information is transferred from.
JDBC by Jon Pearce. DBase Concepts Terms Table Row/Entity Column/Field/Attribute Key/Primary Key/Foreign Key.
1 Sub-queries and Views. 2 A Complex Query We would like to create a table containing 3 columns: –Sailor id –Sailor age –Age of the oldest Sailor How.
Three-Tier Architecture Oracle DB Server Apache Tomcat App Server Microsoft Internet Explorer HTML Tuples HTTP Requests JDBC Requests Java Server Pages.
Java MS Access database connectivity Follow these steps: 1)Go to the start->Control Panel->Administrative Tools- > data sources. 2)Click Add button and.
Database Processing with JSP ISYS 350. Example: Enter CID in a box and retrieve the customer record.
Database Processing with JSP ISYS 350. Example: Enter CID in a box and retrieve the customer record.
JDBC and Hibernate Joshua Scotton. Connecting to Relational DBs.
Java Servlets and Java Server Pages Carol Wolf Computer Science.
Chapter 06 데이터베이스 연동 지원 작성자 : 장은호 소속팀 : 네이버메인개발 작성년월일 :
Database Programming using JSP and MySQL Byung-Hyun Ha
JDBC Tutorial MIE456 - Information Systems Infrastructure II Vinod Muthusamy November 4, 2004.
JDBC (Java Database Connectivity) SNU OOPSLA Lab. October 2005.
Database Processing with JSP ISYS 350. Example: Enter CID in a box and retrieve the customer record.
1 KC Web & Java – 29 november 2005 – Design Patterns – The Template Method AJAX! KC Web & Java 29 november 2005.
Servlets Database Access. Agenda:  Setup Java Environment  Install Database  Install Database Drivers  Create Table and add records  Accessing a.
JDBC Java and Databases, including Postgress. JDBC l Developed by Industry leaders l Three main goals: –JDBC should be an SQL-level API –JDBC should capitalize.
Stored procedures1 Stored procedures and functions Procedures and functions stored in the database.
Mark Dixon 1 09 – Java Servlets. Mark Dixon 2 Session Aims & Objectives Aims –To cover a range of web-application design techniques Objectives, by end.
1 JDBC – Java Database Connectivity. 2 Introduction to JDBC JDBC is used for accessing databases from Java applications Information is transferred from.
1 JDBC Aum Amriteshwaryai Namah. 2 2 JDBC – Java DataBase Connectivity.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
이경화 Ch13. 웹 프로그래밍 설계 및 실습 MVC2 Member.
JDBC – Java Database Concentricity
Copyright  Oracle Corporation, All rights reserved. 6 Accessing a Database Using the JDBC API.
웹프로그래밍 설계 및 실습 DB & JDBC 이경화
Web Design & Development 1 Lec Web Design & Development 2 More on JDBC.
웹 프로그래밍 설계 및 실습 MVC1 Member 이경화
JDBC. Java.sql.package The java.sql package contains various interfaces and classes used by the JDBC API. This collection of interfaces and classes enable.
EXAMPLE I An application showing JDBC access to Cloudscape.
모바일 자바 프로그래밍 MIDP RMS Ps lab 오민경. MIDP RMS  RMS (Record Management System)  MIDP 에서 정의하는 영속성을 지닌 자체 데이터 저장 공간  Record Store 의 집합으로 구성된 아주 간단한 데이터베이스.
16 Java Database Connectivity. 2 Understand the JDBC Understand the steps of the JDBC: 1.) Importing packages 2.) Opening a connection to a database 3.)
Database Processing with JSP ISYS 350. Example: Enter CID in a box and retrieve the customer record.
7장 PHP와 Mysql 연동 한빛미디어(주).
JDBC and SQLJ CIS 612 Spring JDBC JDBC is an API that enables database access from Java programs JDBC for DB access provides ◦ Portability across.
Spring 프레임워크의 이해 4. Spring AOP 이해 및 활용 Grow up to be NHN 人 Spring – AOP 요구사항 !! 비즈니스 계층과 퍼시스턴스 계층의 모든 메써드 시작과 종료시 “ 메써드 시작 ”, “ 메써드 종료 ” 라는 Logging.
Tasks Needed for MissionMapEditor Martin Q. Zhao September 18, 2010.
Access Databases from Java Programs via JDBC Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale
JDBC Part II CS 124. More about JDBC Types Statement versus PreparedStatement Timeout NULL values Meta-data close() methods Exceptions Transactions JDBC.
JDBC (Java Database Connectivity)
은행 고객 관리 DB -3 조 이영철 강민재. 은행 고객 관리 DB 테이블구조 -Customer table 고객 ID( 기본키 ), 고객이름, 고객등급 ( 트리거 )
JDBC - Resultset The java.sql.ResultSet interface represents the result set of a database query. A ResultSet object maintains a cursor that points to the.
Database Programming With Java & JDBC Reading: DD Ch. 18, pp al/jdbc/index.html, or anything covering JDBC.
Database Processing with JSP ISYS 350. Example: Enter CID in a box and retrieve the customer record.
Connection Pooling 2001/4/3 Kang Seungwoo. Connection Pooling Database Connection cost is very high Connection Pool DB 와 연결된 여러 개의 Connection 객체를 미리 확보.
Umair Javed©2005 Enterprise Application Development Java Database Connectivity (JDBC) JDBC1.
1 JDBC: Java Database Connectivity. 2 Introduction to JDBC JDBC is used for accessing databases from Java applications Information is transferred from.
Using Oracle JDBC How to Run JDBC on Your Account Communication Mechanism Using Metadata Building a Database Auto Commit v.s Atomic Transaction.
JSP/Database Connectivity Instructor: Dr. M. Anwar Hossain.
Java Database Connectivity JDBC. Open Database Connectivity developed by Microsoft to provide interaction with databases using SQL. Use the JDBC-ODBC.
CS422 Principles of Database Systems JDBC and Embedded SQL Chengyu Sun California State University, Los Angeles.
Database Processing with JSP ISYS 350. Database Applications Applications Database Server Queries/Updates Results.
데이터 베이스 설계 및 실습 #11 - JSP 예제.
JDBC Java Data Base Connectivity נערך ע"י: אורי רוטנברג הנחיה: ד"ר תמר בניה קורס: סדנא ב-Java.
1 JDBC – Java Database Connectivity THETOPPERSWAY.COM.
CS320 Web and Internet Programming Database Access with JDBC Chengyu Sun California State University, Los Angeles.
Database Activity CEMC Steps 1. Verify Data Tools Platform is installed in Eclipse 2. Configure a Connection to Derby Create necessary table for.
MySQL root 암호 $ mysqladmin -u root -p password new-password $ mysql -u root mysql mysql> update user set password = password('new-password') where user.
CS3220 Web and Internet Programming Database Access with JDBC
Java Access to RDB Relational databases (RDBs) dominate today, due to:
CS320 Web and Internet Programming Database Access with JDBC
HW#4 Making Simple BBS Using JDBC
JDBC – Java Database Connectivity
Spring 프레임워크의 이해 5. Spring Abstract API.
JDBC Example.
CS3220 Web and Internet Programming Database Access with JDBC
CS3220 Web and Internet Programming Database Access with JDBC
Presentation transcript:

방명록 제작

목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명

기본 레이아웃  수업시간에 한 방명록 코드를 사용  코드분석 및 이미지 작업 방명록 ( 수업 )

DB 구조  Oracle 사용 DB 구조 (DB 명 GUESTBOOK)

방명록 구조

guestbook_list.jsp page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" errorPage="guestbook_error.jsp" import="java.util.*, jspbook.guestbook.*"%> function check(gb_id) { pwd = prompt(' 수정 / 삭제 하려면 비밀번호를 넣으세요 '); document.location.href="guestbook_control.jsp?action=edit&gb_id="+gb_id+"&upasswd="+pwd; } 방명록 : 목록화면 <% GuestBean gb = new GuestBean(); ArrayList datas = gb.getDBList(); %> 번호 작성자 전화번호 작성일 내용 ')> GuestBean 에 대한 gb 라는 객체를 생성 DB 에 접근하게 됨 DB 에 있는 내용만큼 반복하면서 게시판에 출력

guestbook_list.jsp 화면

guestbook_form.jsp 방명록 : 작성화면 작 성 자 전화번호 비밀번호 ※ 비밀번호는 최대 6 자리입니다.

guestbook_form.jsp 화면

guestbook_edit_form.jsp // 삭제 확인을 위한 자바스크립트 function delcheck() { // 메시지 창을 통해 YES/NO 확인 result = confirm(" 정말로 삭제하시겠습니까 ?"); if(result == true){ document.form1.action.value="delete"; document.form1.submit();} else return;} 방명록 : 수정화면 <% GuestBook guestbook = (GuestBook)request.getAttribute("gbook"); %> "> 작 성 자 "> "> 전화번호 "> 비밀번호 "> ※ 비밀번호는 최대 6 자리입니다. 현재 수정할 글에 대한 작성자, 내용, 비밀번호 등의 정보를 가져와서 출력해주는 역할

guestbook_edit_form.jsp 화면

guestbook_control.jsp Insert title here <% String action = request.getParameter("action"); if(action.equals("list")) { response.sendRedirect("guestbook_list.jsp");} else if(action.equals("insert")) { if(gb.insertDB(guestbook)) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 입력오류 ");} else if(action.equals("edit")) { GuestBook gbook = gb.getDB(guestbook.getGb_id()); if(!gbook.getGb_passwd().equals(request.getParameter("upasswd"))) { out.println(" alert(' 비밀번호가 틀렸습니다.!!');history.go(-1); ");} else { request.setAttribute("gbook",gbook); pageContext.forward("guestbook_edit_form.jsp");}} else if(action.equals("update")) { if(gb.updateDB(guestbook)) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 갱신오류 ");} else if(action.equals("delete")) { if(gb.deleteDB(guestbook.getGb_id())) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 삭제 오류 "); } else {out.println(" alert('action 파라미터를 확인해 주세요 !!!') ");} %> 작성글에 대한 리스트를 원할때 수행 글을 작성하기를 원할때 수행 글을 수정하기를 원할때 수행 글또는 내용을 갱신을 위해 수행 글을 삭제하기 위해서 수행

guestbook_error.jsp page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" isErrorPage="true"%> 방명록 에러 방명록 처리중 에러가 발생 했습니다. 관리자에게 문의해 주세요.. 빠른시일내 복구하겠습니다. 에러내용 :

GuestBean.java 1/5 package jspbook.guestbook; import java.sql.*; import java.util.*; // 클래스 선언 public class GuestBean { // 데이터베이스 연결관련 변수 선언 Connection conn = null; PreparedStatement pstmt = null; // 데이터베이스 연결관련정보를 문자열로 선언 String jdbc_driver = "oracle.jdbc.driver.OracleDriver"; String jdbc_url = // 데이터베이스 연결 메서드 void connect() { // JDBC 드라이버 로드 try { Class.forName(jdbc_driver); // 데이터베이스 연결정보를 이용해 Connection 인스턴스 확보 conn = DriverManager.getConnection(jdbc_url,"jspdbuser","8510"); } catch (Exception e) { e.printStackTrace(); } // 데이터베이스 연결 종료 메서드 void disconnect() { if(pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); }

GuestBean.java 2/5 if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } // 데이터 갱신을 위한 메서드 public boolean updateDB(GuestBook guestbook) { connect(); String sql ="update GUESTBOOK set gb_name=?, gb_ =?, gb_date=sysdate, gb_tel=?, gb_passwd=?, gb_contents=? where gb_id=?"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 GuestBook 객체를 이용해 사용자가 수정한 값을 가져와 SQL 문 완성 pstmt.setString(1,guestbook.getGb_name()); pstmt.setString(2,guestbook.getGb_ ()); pstmt.setString(3,guestbook.getGb_tel()); pstmt.setString(4,guestbook.getGb_passwd()); pstmt.setString(5,guestbook.getGb_contents()); pstmt.setInt(6,guestbook.getGb_id()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; }

GuestBean.java 3/5 // 게시물 삭제를 위한 메서드 public boolean deleteDB(int gb_id) { connect(); String sql ="delete from guestbook where gb_id=?"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 gb_id 프라이머리 키 값을 이용해 삭제 pstmt.setInt(1,gb_id); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; } // 게시물 등록 메서드 public boolean insertDB(GuestBook guestbook) { connect(); String sql ="insert into guestbook(gb_name,gb_ ,gb_date,gb_tel,gb_passwd,gb_contents) values(?,?,sysdate,?,?,?)"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 GuestBook 객체를 통해 사용자 입력값을 받아 SQL 완성후 입력 처리 pstmt.setString(1,guestbook.getGb_name()); pstmt.setString(2,guestbook.getGb_ ()); pstmt.setString(3,guestbook.getGb_tel()); pstmt.setString(4,guestbook.getGb_passwd()); pstmt.setString(5,guestbook.getGb_contents()); pstmt.executeUpdate();

GuestBean.java 4/5 } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; } // 게시물 하나의 모든 정보를 가지고 오는 메서드 public GuestBook getDB(int gb_id) { connect(); String sql = "select * from guestbook where gb_id=?"; GuestBook guestbook = new GuestBook(); try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1,gb_id); ResultSet rs = pstmt.executeQuery(); rs.next(); // 가져와 데이터를 GuestBook 객체로 만들어 리턴함. guestbook.setGb_id(rs.getInt("gb_id")); guestbook.setGb_name(rs.getString("gb_name")); guestbook.setGb_ (rs.getString("gb_ ")); guestbook.setGb_date(rs.getDate("gb_date")); guestbook.setGb_tel(rs.getString("gb_tel")); guestbook.setGb_contents(rs.getString("gb_contents")); guestbook.setGb_passwd(rs.getString("gb_passwd")); rs.close(); } catch (SQLException e) { e.printStackTrace(); }

GuestBean.java 5/5 finally { disconnect(); } return guestbook; } // 게시물 목록 출력을 위해 전체 게시물을 가지고 오는 메서드 public ArrayList getDBList() { connect(); // 게시물 목록을 리턴하기 위한 ArrayList 객체 생성, 명시적으로 ArrayList 에 들어갈 데이터 타잎을 선언함. ArrayList datas = new ArrayList (); String sql = "select * from guestbook"; try { pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); // 돌면서 ResultSet 을 이동하면서 모든 데이터 row 를 하나씩 가지고 와서 GuestBook 객체에 넣고 이를 다시 ArrayList 에 넣는 작업을 반복. while(rs.next()) { GuestBook guestbook = new GuestBook(); guestbook.setGb_id(rs.getInt("gb_id")); guestbook.setGb_name(rs.getString("gb_name")); guestbook.setGb_ (rs.getString("gb_ ")); guestbook.setGb_date(rs.getDate("gb_date")); guestbook.setGb_tel(rs.getString("gb_tel")); guestbook.setGb_contents(rs.getString("gb_contents")); datas.add(guestbook); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally {disconnect();} // 처리가 끝나 ArrayList 를 리턴함. return datas;}}

GuestBook.java package jspbook.guestbook; import java.util.*; // 방명록 테이블 구조와 동일한 데이터 처리 클래 public class GuestBook { // 멤버변수 private int gb_id; private String gb_name; private String gb_ ; private String gb_tel; private Date gb_date; private String gb_passwd; private String gb_contents; public String getGb_contents() {return gb_contents;} public void setGb_contents(String gb_contents) {this.gb_contents = gb_contents;} public Date getGb_date() {return gb_date;} public void setGb_date(Date gb_date) {this.gb_date = gb_date;} public String getGb_ () {return gb_ ;} public void setGb_ (String gb_ ) {this.gb_ = gb_ ;} public int getGb_id() {return gb_id;} public void setGb_id(int gb_id) {this.gb_id = gb_id;} public String getGb_name() {return gb_name;} public void setGb_name(String gb_name) {this.gb_name = gb_name;} public String getGb_tel() {return gb_tel;} public void setGb_tel(String gb_tel) {this.gb_tel = gb_tel;} public String getGb_passwd() {return gb_passwd;} public void setGb_passwd(String gb_passwd) {this.gb_passwd = gb_passwd;} }