경진의 블로그

회원관리 시스템 조회부분 본문

자바개발과정/JSP&Servlet

회원관리 시스템 조회부분

aith 2008. 7. 9. 21:18
회원 정보 조회 부분 작성

첨부파일




사용자 삽입 이미지

시작페이지(index.html) 파일에 링크(조회 페이지)를 추가한다.
MemberCtrl.java 조회 하는 기능의 메소드를 추가한다.
memberlist.jsp 실제로 조회하여 보여주는 페이지이다

MemberCtrl.java에서 preparedStatement를 사용했다

public ArrayList memberList() { //리턴형이 컬렉션(ArrayList)이다.
※ "왜 배열을 사용안하고 컬렉션을 사용하는가?"라는 질문을 받았다
     배열은 크기가 임의로 늘어나지 않는다.
     DB에서 불러오는 데이터는 일정하지 않을수도 있다.
     컬렉션(ArrayList, Vector등)은 크기를 늘렸다 줄였다 한다.

    ArrayList memAList = null; //ArrayList를 선언한다
    pool = DBConnectionMgr.getInstance(); //JDBC 드라이버 로드한다
    query = new StringBuffer(); //쿼리문을 담을 변수이다
    query.append("SELECT mem_name, mem_id, mem_email, mem_tel");
    query.append(" FROM member");
    memAList = new ArrayList(); //ArrayList를 생성한다
    int count = 0; //앤 지워도 된다 (사용안함)
    try {
        con = pool.getConnection(); //DB연결한다
        stmt = con.createStatement(); //데이터베이스 접근한다
        rs = stmt.executeQuery(query.toString()); //쿼리를 실행한다
        while(rs.next()) { //ResultSet에 반환되는 결과가 있는동안 순환문을 시작한다
            memAList.add(rs.getString(1)); //memAList에 칼럼을 하나씩 담는다 (mem_name)
            memAList.add(rs.getString(2)); //(mem_id)
            memAList.add(rs.getString(3)); //(mem_email)
            memAList.add(rs.getString(4)); //(mem_tel)
        }
     } catch (SQLException s) {
           System.out.println("====================================");
           System.out.println("query : " + query.toString());
           System.out.println("====================================");
           System.out.println(s.toString());
      } catch (Exception e) {
           System.out.println(e.toString());
      } finally {
           pool.freeConnection(con,pstmt,rs); //DB와 연결을 해제한다
      }

 return memAList; //컬렉션을 리턴한다
 }

Statement로 수정한다

아래의 코드를 찾는다.(변수는 선언되어있다.)
pstmt = con.prepareStatement(query.toString());
rs = pstmt.executeQuery();

다음과 같이 바꿔준다.
stmt = con.createStatement();
rs = stmt.executeQuery(query.toString());

memberlist.jsp에 DB에서 한 열(ROW)씩 출력하는 부분이다

<!-- DB에서 가져와서 보여주기 위해 반복문을 돌린다. -->
<%
//SELECT해온 결과를 출력해준다. 읽오온 ROW의 갯수만큼 반복 생성되어야 함.
ArrayList outAList = memCtrl.memberList(); //리턴되는 값(ArrayList)를 outAList에 대입한다
int x = 0; //ArrayList에 담은 칼럼들을 카운터하는 변수이다
int num = outAList.size()/4; //번호를 DB에 저장한 값이 없다 (전체 칼럼/조회 칼럼)을 해서 사용하기 위한 변수이다 (ROW값을 알기위한 변수)
for(int i=0;i<outAList.size()/4;i++) { //ROW값 만큼 반복한다
%>
<tr>
<td width="50" align="center">&nbsp;<%=num--%></td>
<td width="120" align="center">&nbsp;<%=outAList.get(x++)%></td>
<td width="200" align="center">&nbsp;<%=outAList.get(x++)%></td>
<td width="200" align="center">&nbsp;<%=outAList.get(x++)%></td>
<td width="120" align="center">&nbsp;<%=outAList.get(x++)%></td>
</tr>
<%
}
%>

0 Comments
댓글쓰기 폼