2013년 7월 11일 목요일

(130711) 14일차 FormData.jsp, MemberBean.java, JdbcTest.jsp, Result.jsp, MemberDao.java (JSP에서 JDBC 사용하기)

// 1. 빈클래스 설정. setProperty
// 담아있는 데이터를 query를 이용하여 데이터 베이스에 출력 후
// Result.jsp를 만든 후 데이터 입력이 모두 완료 되었습니다.
// a 태그를 이용하여 회원 가입하러 가기

 - FormData.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title> 회원 가입 </title>
</head>
<body>
<h2> 회원 가입 </h2>
<!-- post는 url에서 숨겨서 보내고, get은 url에 표기해서 보냄 -->
<form action = "JdbcTest.jsp" method = "post"> 
  
  아이디 : <input type = "text" name = "id" size = "50"> <br><br>
  패스워드 : <input type = "password" name = "pass"> <br><br>
  당신의 성별은 : <input type = "radio" name = "gender" value = "남성" > 남성
      <input type = "radio" name = "gender" value = "여성"> 여성  <br><br>
  당신의 취미는 : <input type = "checkbox" name = "hobby" value = "음악감상" checked = "checked"> 음악감상
      <input type = "checkbox" name = "hobby" value = "영화감상"> 영화감상
      <input type = "checkbox" name = "hobby" value = "악기연주"> 악기연주  <br><br>
  당신의 직업은 : <select name="job">
      <option value = "학생"> 학생 </option>
      <option value = "개발자"> 개발자 </option>
<option value = "백수"> 백수 </option>
      <option value = "의사"> 의사 </option>
      <option value = "검사"> 검사 </option>
  </select> <br><br>
  하고 싶은말 : <textarea name = "talk" rows="5" cols="50"></textarea> <br><br>
<input type="submit" value="전송"> <input type="reset" value="취소">

</form>
</body>
</html>


 - MemberBean.java 소스
package member;

public class MemberBean {
// form 데이터의 name과 똑같은 이름의 멤버변수를 만듬
private String id;
private String pass;
private String gender;
private String hobby;
private String job;
private String talk;

public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getTalk() {
return talk;
}
public void setTalk(String talk) {
this.talk = talk;
}
}


 - JdbcTest.jsp 소스
<%@page import="member.MemberDao"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<% request.setCharacterEncoding("euc-kr"); %>
<jsp:useBean id = "mbean" class = "member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mbean"/>

<%
MemberDao mdao = new MemberDao();
// 데이터 입력
mdao.insertMember(mbean);

response.sendRedirect("Result.jsp"); // 데이터 입력 후 보내지는 페이지
%>

</body>
</html>


 - Result.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<center>

<h3> 데이터 입력이 모두 완료 되었습니다. </h3>
<a href = "FormData.jsp"> 회원가입 하러가기 </a>

</center>
</body>
</html>


 - MemberDao.java 소스
package member;

import java.sql.*;

public class MemberDao {
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String id = "system";
String pass = "123456";
Connection con;
PreparedStatement pstmt;
ResultSet rs;

// 데이터 베이스에 접근하는 메소드
public void con(){
try {
// 어느 데이터베이스를 사용할 것인지를 설정
Class.forName("oracle.jdbc.driver.OracleDriver"); // 대소문자 구문
// 실제 데이터 베이스에 접근하기 위한 소스를 작성 == 접속완료되면 커넥션을 리턴
con = DriverManager.getConnection(url, id, pass);

System.out.println("오라클에 접속 완료");

} catch (Exception e) {
e.printStackTrace();
}

}

// 멤버 데이터를 저장하는 메소드
public void insertMember(MemberBean mbean){
// 데이터베이스에 접근
this.con();
// 쿼리 준비
String sql = "insert into jspmember values(?, ?, ?, ?, ?, ?)";
try {
// 쿼리를 날리기위한 객체를 선언
pstmt = con.prepareStatement(sql);

// 데이터 입력
pstmt.setString(1, mbean.getId());
pstmt.setString(2, mbean.getPass());
pstmt.setString(3, mbean.getGender());
pstmt.setString(4, mbean.getHobby());
pstmt.setString(5, mbean.getJob());
pstmt.setString(6, mbean.getTalk());

// 쿼리실행
pstmt.executeUpdate();

// 자원을 닫음
pstmt.close();
con.close();

} catch (Exception e) {
e.printStackTrace();
}
}
}


 - 결과