자 ,오늘은 계속해서 MemberList ,즉 Select 사용하는 방법에 대해서 수업을 해볼것이다.
//모든 회원의 정보를 리턴해주는 메소드 호출
public Vector<MemberBean> allSelectMember(){
Vector<MemberBean> v = new Vector<MemberBean>();
return v;
}
--> 이부분에서 지난시간에도 말했지만, 가변길이로 데이터를 저장해준다.
자, 각자 빈클래스를 벡터클래스에다가 대입해주어야만 한다.
자 항상, 데이터베이스는 접속이 끊기거나 exception이 날수 있기 떄문에 ,
무조건, 예외처리(try()catch(){})를 해주어야 한다.
무조건 데이터베이스는 입출력 ,쓰레드 ,네트워크,데이터베이스 이 네개의 패키지안에는 try()catch(){}를 무조건적으로 한다.
//모든 회원의 정보를 리턴해주는 메소드 호출
public Vector<MemberBean> allSelectMember(){
Vector<MemberBean> v = new Vector<MemberBean>();
//무조건 데이터베이스는 예외처리를 반드시 해야합니다.
try {
//커넥션 연결
getCon();
//쿼리 준비
String sql ="select * from member2";
//쿼리를 실행시켜주는 객체 선언
pstmt = con.prepareStatement(sql);
//4. 결과를 실행시킨 결과를 리턴해서 받아줌(오라클 테이블의 검색된 결과를 자바객체에 저장)
rs = pstmt.executeQuery();//결과적으로 resultSet에 데이터가 저장이 되어있다는 것이다.
//반복문을 사용해서 rs에 저장된 데이트를 추출해놓아야한다.
while(rs.next()) { //저장된 테이터만큼까지 반복문을 돌리겠다라는 뜻이다.
MemberBean bean = new MemberBean();//컬럼으로 나뉘어진 데이트를 빈클래스에 저장
bean.setId(rs.getString(1));//안드로이드에서는 0 자바에서는 1부터 시작한다.
bean.setPass1(rs.getString(2));
bean.setEmail(rs.getString(3));
bean.setTel(rs.getString(4));
bean.setHobby(rs.getString(5));
bean.setJob(rs.getString(6));
bean.setAge(rs.getString(7));
bean.setInfo(rs.getString(8));
//자 ,패키징된 멤버빈클래스를 벡터에 저장
v.add(bean);//0번지부터 순서대로 데이터가 저장
}
// 자원 반납
con.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
// 다 저장된 벡터를 리턴
return v;
}
--> 팁! 위코드 주석 순서대로 잘 읽어보자!
MemberList.jsp
--> 테이블 태그를 이용하여 화면에 회원들의 정보를 출력
<%@page import="model.MemberBean"%>
<%@page import="java.util.Vector"%>
<%@page import="model.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 1. 데이터베이스에서 모든 회원의 정보를 가져온다.
2. 테이블 태그를 이용하여 화면에 회원들의 정보를 출력
-->
<%
MemberDAO mdao = new MemberDAO();
//멤버dao클래스가 오라클에 접속해서 정보를 가지고 올것이다. 하지만 한사람에 대한 정보는 자바빈클래스 MemberBean에다가 넣기로 하였다.
//즉 한사람에 대한 정보는 memberBean에 넣을수가 있다.
//결론은 memberbean에 있는 내용을 저장해줄 클래스를 또 만들어야만 한다.
//배열도 가능하다, object클래스인 배열은 모든 클래스의 최상위 루트이기 떄문에
// 어떠한 값도 대입가능하다.
/* 단 배열은 단점이 있다. 배열은 처음부터 길이를 정해주어야한다.
즉 레코드의 갯수를 모를수 있다.
그래서, 사용하는 가변길이 클래스가 바로 Vector클래스이다. */
/*
Vector의 배열과의 차이점은 바로 가변길이라는 정해진길이가 아닌 가변이다. 즉 늘어놨다줄어졌다 라는 점이다..
그래서 Arraylist나Vector를 사용할것인데, 나는 Vector를 추천할것이다. */
//회원들의 정보가 얼마나 저장되어있는지 모르기에 가변길이인 Vector를 이용하여 저장해줌
Vector<MemberBean> vec = mdao.allSelectMember();
%>
<center>
<h2>모든 회원정보보기 </h2>
<table width="800" border = "1">
<tr height="50">
<td align="center" width="150">아이디 </td>
<td align="center" width="250">이메일 </td>
<td align="center" width="200">전화번호 </td>
<td align="center" width="200">취미 </td>
</tr>
</table>
<%
for(int i = 0;i<vec.size();i++){
MemberBean bean = vec.get(i);//벡터에 담긴 빈클래스를 하나씩 추출
%>
<tr height="50">
<td align="center" width="150"><%=bean.getId() %> </td>
<td align="center" width="250"><%=bean.getEmail() %> </td>
<td align="center" width="200"><%=bean.getTel() %> </td>
<td align="center" width="200"><%=bean.getHobby() %> </td>
</tr>
<%
}
%>
</center>
</body>
</html>
'웹 프로그래밍(풀스택-->java) > 웹프로그래밍(백엔드-->java)' 카테고리의 다른 글
23. Jsp와 데이터베이스 연동 8 (0) | 2021.12.01 |
---|---|
22. Jsp와 데이터베이스 연동 7 (0) | 2021.11.30 |
20. Jsp와 데이터베이스 연동 5 (0) | 2021.11.30 |
17. JSP와 데이터베이스 연동 2 (0) | 2021.11.28 |
16. JSP 와 데이터베이스 연동 (0) | 2021.11.28 |