[목차]
01. List 컬렉션
💡
객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공
02. DTO_DAO list 처리
💡
1️⃣ DAO 클래스에 select 쿼리 메서드를 생성한다.
2️⃣ ArrayList 객체를 생성하고 주소값을 객체참조변수에 할당한다.
3️⃣ DTO로 객체를 셋팅 하고 그 주소값을 ArrayList 객체에 add한다.
4️⃣ JSP에서 DAO 객체 생성 후 메서드를 호출한다.
5️⃣ ArrayList객체 주소값을 리턴 받고 ArrayList에 있는 각각 주소를 찾아가서 꺼내온다.
6️⃣ ArrayList에서 꺼내온 주소에서 셋팅된 값들을 겟팅해서 화면에 뿌려준다.
[코드예제] Udao.java
package kr.or.dao; import kr.or.driverdb.DriverDB; import kr.or.dto.User; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class Udao { // 전역에 각각 데이터타입의 객체참조변수를 선언 User u = null; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; ArrayList<User> alu = null; // 6. 리스트화면 처리 메서드 (ArrayList<User> 데이터 타입) public ArrayList<User> uAllSelect() throws SQLException, ClassNotFoundException { System.out.println("uAllSelect 메서드 Udao.java"); alu = new ArrayList<User>(); // 1-2단계 드라이버 실행, DB연결 DriverDB db = new DriverDB(); conn = db.driverDbcon(); System.out.println(conn + "<- conn Udao.java"); // 3단계 쿼리 실행 준비 pstmt = conn.prepareStatement("SELECT * from tb_user"); System.out.println(pstmt + "<- pstmt"); // 4단계 쿼리 실행 rs = pstmt.executeQuery(); // 5단계 쿼리 실행 결과 사용 while(rs.next()) { System.out.println("while 반복문 uAllSelect Udao.java"); u = new User(); // while문 통해서 u에 담긴 객체 주소를 확인 System.out.println(u + "<-- u uAllSelect Udao.java"); u.setU_id(rs.getString("u_id")); u.setU_pw(rs.getString("u_pw")); u.setU_level(rs.getString("u_level")); u.setU_name(rs.getString("u_name")); u.setU_email(rs.getString("u_email")); u.setU_phone(rs.getString("u_phone")); u.setU_addr(rs.getString("u_addr")); // ArrayList에 셋팅된 객체 주소를 추가 alu.add(u); } // 6단계 쿼리 종료 pstmt.close(); rs.close();; // 7단계 DB연결 종료 conn.close(); return alu; } }
[코드예제] user_list.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <%@ page import="kr.or.dao.Udao" %> <%@ page import="java.util.ArrayList" %> <%@ page import="kr.or.dto.User" %> 회원리스트 <br/> <table width="100%" border="2"> <tr> <td>아이디</td> <td>비밀번호</td> <td>권한</td> <td>이름</td> <td>이메일</td> <td>전화번호</td> <td>주소</td> <td>수정</td> <td>삭제</td> </tr> <% // 객체 생성 후 메서드 호출 Udao udao = new Udao(); ArrayList<User> alu = udao.uAllSelect(); // 리턴값 사용 // 화면에 뿌려주는 방법(for문 사용) for(int i=0; i<alu.size(); i++) { User u = alu.get(i); %> <tr> <td><%= u.getU_id() %></td> <td><%= u.getU_pw() %></td> <td><%= u.getU_level() %></td> <td><%= u.getU_name() %></td> <td><%= u.getU_email() %></td> <td><%= u.getU_phone() %></td> <td><%= u.getU_addr() %></td> <td><a href="<%=request.getContextPath()%>/userupdate/user_update_form.jsp?send_id=<%=u.getU_id()%>">수정버튼</a></td> <td><a href="<%=request.getContextPath()%>/userdelete/user_delete_action.jsp?send_id=<%=u.getU_id()%>">삭제버튼</a></td> </tr> <% } %> </table>
03. DTO_DAO 검색 처리
💡
1️⃣ DAO 클래스에 select 쿼리 메서드를 생성한다.
2️⃣ ArrayList 객체를 생성하고 주소값을 객체참조변수에 할당한다.
3️⃣ 조건문을 활용해서 검색 조건에 따라 쿼리 실행 준비를 한다.
4️⃣ DTO로 객체를 셋팅 하고 그 주소값을 ArrayList 객체에 add한다.
5️⃣ JSP에서 DAO 객체 생성 후 메서드를 호출한다.
6️⃣ ArrayList객체 주소값을 리턴 받고 ArrayList에 있는 각각 주소를 찾아가서 꺼내온다.
7️⃣ ArrayList에서 꺼내온 주소에서 셋팅된 값들을 겟팅해서 화면에 뿌려준다.
[코드예제] Udao.java
package kr.or.dao; import kr.or.driverdb.DriverDB; import kr.or.dto.User; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class Udao { // 전역에 각각 데이터타입의 객체참조변수를 선언 User u = null; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; ArrayList<User> alu = null; // 7. 검색화면 처리 메서드 public ArrayList<User> uSearch(String sk, String sv) throws SQLException, ClassNotFoundException { System.out.println("uSearch 메서드 Udao.java"); alu = new ArrayList<User>(); // 1-2단계 드라이버 실행, DB연결 DriverDB db = new DriverDB(); conn = db.driverDbcon(); System.out.println(conn + "<- conn Udao.java"); // 3단계 쿼리 실행 준비 String selectQuery = "SELECT * from tb_user"; if((sk == null && sv == null) || (sk != null && sv.equals(""))) { pstmt = conn.prepareStatement(selectQuery); } else { pstmt = conn.prepareStatement(selectQuery + " where " + sk + "=?"); pstmt.setString(1, sv); } System.out.println(pstmt + "<- pstmt"); // 4단계 쿼리 실행 rs = pstmt.executeQuery(); // 5단계 쿼리 실행 결과 사용 while(rs.next()) { u = new User(); u.setU_id(rs.getString("u_id")); u.setU_pw(rs.getString("u_pw")); u.setU_level(rs.getString("u_level")); u.setU_name(rs.getString("u_name")); u.setU_email(rs.getString("u_email")); u.setU_phone(rs.getString("u_phone")); u.setU_addr(rs.getString("u_addr")); // ArrayList에 셋팅된 객체 주소를 추가 alu.add(u); } // 6단계 쿼리 종료 pstmt.close(); rs.close();; // 7단계 DB연결 종료 conn.close(); return alu; } }
[코드예제] user_search_list.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> <link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/css/main.css" /> </head> <body> <%@ include file="/module/top.jsp" %> <%@ include file="/module/left.jsp" %> <%@ page import="kr.or.dao.Udao" %> <%@ page import="java.util.ArrayList" %> <%@ page import="kr.or.dto.User" %> <%@ include file="/usersearch/user_search_form.jsp" %> <br/> <table width="100%" border="1"> <tr> <td>아이디</td> <td>비번</td> <td>권한</td> <td>이름</td> <td>이메일</td> <td>전화번호</td> <td>주소</td> <td>수정</td> <td>삭제</td> </tr> <% // form에서 sk, sv 값을 post방식으로 가져온다. request.setCharacterEncoding("euc-kr"); String sk = request.getParameter("sk"); String sv = request.getParameter("sv"); System.out.println(sk + "<- sk"); System.out.println(sv + "<- sv"); // 객체 생성 후 메서드 호출 Udao udao = new Udao(); ArrayList<User> alu = udao.uSearch(sk, sv); // 리턴값 변수에 저장 // 화면에 출력하는 방법 for(int i = 0; i<alu.size(); i++) { User u = alu.get(i); %> <tr> <td><%= u.getU_id() %></td> <td><%= u.getU_pw() %></td> <td><%= u.getU_level() %></td> <td><%= u.getU_name() %></td> <td><%= u.getU_email() %></td> <td><%= u.getU_phone() %></td> <td><%= u.getU_addr() %></td> <td><a href="<%=request.getContextPath()%>/userupdate/user_update_form.jsp?send_id=<%=u.getU_id()%>">수정버튼</a></td> <td><a href="<%=request.getContextPath()%>/userdelete/user_delete_action.jsp?send_id=<%=u.getU_id()%>">삭제버튼</a></td> </tr> <% } %> </table> <%@ include file="/module/hadan.jsp" %> </body> </html>
tag : #jsp #java #select #쿼리 #DTO #DAO #ArrayList #List
Uploaded by N2T