Insert.jsp 파일 만들기
이 JSP 파일은 <form>태그 안에 작성된 모든 내용 즉, 데이터를 받아 처리하는 역할을 합니다. 또한 처리한 결과값을 보여주기 위해 결과값을 list.jsp 파일로 보내는 역할까지 합니다.
insert.jsp 소스코드 접기
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String email = request.getParameter("email");
MemberVO vo = new MemberVO();
vo.setId(id);
vo.setPw(pw);
vo.setEmail(email);
MemberDAO dao = new MemberDAO();
dao.MemberInsert(vo);
response.sendRedirect("list.jsp");
%>
접기
form.jsp에서 <form>태그를 통해 값을 보내면 insert.jsp에서 받아서 처리하기 위한 작업을 합니다.
1. request.getParameter("id") 이러한 형태로 입력한 모든 값을 받아 옵니다.
2. MemberVO 클래스를 생성해 해당하는 값들을 모두 setter로 삽입합니다.
3. MemberDAO 클래스를 생성해 우리가 수행하고자 하는 메소드를 불러옵니다.
4. 정상적으로 작동 후 list.jsp 파일로 이동합니다.
여기까지 form 태그를 이용해 DB에 작성한 데이터를 저장하는 것 까지 했습니다. 이제 이것을 확인하기 위해 출력을 한번 해보도록 하겠습니다. 이전 포스팅에서 있는 list.jsp는 테이블을 모두 만들어 직접 입력한 것이기 때문에 가짜 데이터들입니다.
그렇기 때문에 list.jsp 파일을 변경 해야 합니다. 하지만 그 전에 DB에 저장된 데이터를 불러오려면 당연히 DAO 파일 또한 변경해야 합니다.
MemberDAO 파일 변경
DB에 저장된 모든 정보를 불러 오려면 DAO에 새로운 메소드를 만들어야 합니다.
우리는 그 메소드 이름을 SearchAll()로 하겠습니다.
이전에 DAO에 만들어 놓은 과 매우 흡사하며 3~5번이 다릅니다.
더보기 접기
public ArrayList<MemberVO> searchAll() {
ArrayList<MemberVO> list = null;
MemberVO vo = null;
Connection con = null;
String url = "jdbc:oracle:thin:@localhost:1522:xe";
String driver = "oracle.jdbc.OracleDriver";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 1. JDBC 드라이버 로딩
Class.forName(driver);
// 2. Connection 얻어오기
con = DriverManager.getConnection(url, "webdb", "1234");
// 3. SQL문 준비
String sql = "SELECT * FROM member_tbl ORDER BY no DESC";
// 4. 바인딩
pstmt = con.prepareStatement(sql);
// 5. 실행
rs = pstmt.executeQuery();
list = new ArrayList<MemberVO>();
while(rs.next()) {
vo = new MemberVO();
vo.setNo(rs.getInt(1));
vo.setId(rs.getString(2));
vo.setPw(rs.getString(3));
vo.setEmail(rs.getString(4));
list.add(vo);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close(); // 종료
pstmt.close(); // 종료
con.close(); // 종료
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
접기
3. SELECT를 이용해 현재 DB에 저장된 정보를 불러오는 SQL문 작성
4. prepareStatement( ) 를 이용해 DB와의 통로를 열어준다.
5. 쿼리문을 실행시킨다.
우리가 list를 만든 이유는 당연히 DB에 저장된 회원이 한 명이 아니기 때문입니다. 그렇기 때문에 list로 DB에 저장된 모든 회원의 정보를 추가시키는 것입니다. rs.next() 메소드를 이용해 DB에 저장된 모든 회원의 정보를 받아 오는 것입니다.(있으면 true / 없으면 false)
그렇게 만든 list를 리턴값으로 반환을 해주면 됩니다.
이미 만들어 놓은 MemberInsert( ) 메소드는 그냥 놔두시면 됩니다.
list.jsp 파일 변경
이전 값들 중 하나의 테이블만 남기고 모두 지우겠습니다.
더보기 접기
<%@page import="kr.co.jimmy.VO.MemberVO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="kr.co.jimmy.DAO.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
MemberDAO dao = new MemberDAO();
ArrayList<MemberVO> list = dao.searchAll();
//System.out.print(list.toString());
%>
<!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=UTF-8">
<title>회원 리스트</title>
</head>
<body>
<h1>회원가입 되었습니다.</h1>
<p>입력한 정보 내역입니다.</p>
<!-- 메일정보 리스트 -->
<%-- list에서 하나씩 빼서 테이블를 채운다--%>
<%
for(MemberVO vo : list){
%>
<table border="1" cellpadding="5" cellspacing="2">
<tr>
<td align=right width="110">ID </td>
<td width="170"><%=vo.getId() %></td>
</tr>
<tr>
<td align=right >Password </td>
<td><%=vo.getPw() %></td>
</tr>
<tr>
<td align=right>Email </td>
<td><%=vo.getEmail() %></td>
</tr>
</table>
<br>
<%
}
%>
</body>
</html>
접기
1. MemberDAO 클래스를 생성해 출력에 관한 메소드인 SearchAll( ) 메소드를 불러 옵니다.
2. 향상된 for문을 이용해 list에 넣은 모든 회원의 정보를 각 <table>에 하나씩 넣어 출력
스크립트릿 (<% %>)과 HTML을 같이 사용해서 헷갈릴수도 있습니다. 하지만 어려운 부분이 아닙니다. 조금만 생각하면 금방 이해하실 겁니다. 그리고 마지막으료 표현식(<% = %>)은 값을 출력하기위해 사용하는 것입니다.
이러한 결과값을 얻을 수 있습니다.
곧 정리해서 깃허브에 올려두도록 하겠습니다.
깃허브
마지막으로 가장 중요한 것을 빼먹었습니다. 오라클의 JDBC를 사용하려면 라이브러리가 필요합니다.
이렇게만 한다면 당연히 오류가 발생합니다.
보통 오라클을 설치하면
경로
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
이 경로 안에 ojdbc6.jar 파일이 들어 있습니다. 그것을 복사해 아래 사진 위치에 lib 폴더를 만들어 넣으시면 됩니다.
그 이후 ojdbc6.jar 파일을 우클릭 ->Build Path -> add Build Path로 추가시켜줍니다.
이렇게까지하고 실행하시면 정상적으로 실행이 될겁니다.
댓글