Yangsansam / yang1

0 stars 0 forks source link

ListServlet #1

Open Yangsansam opened 2 years ago

Yangsansam commented 2 years ago

``package controller;

import java.io.IOException; import java.util.ArrayList;

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import dao.MemberDAO; import dto.MemberDTO;

/**

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8"); //인코딩!!
response.setContentType("text/html;charset=utf-8");//받는 방식!
RequestDispatcher rd = request.getRequestDispatcher("webapp/list.jsp");
MemberDAO mDao = new MemberDAO();

//db에서 회원 목록 전체를 가져오는 getAllList 를 테스트하자
try {
    ArrayList<MemberDTO> list = mDao.getAllList();

    for(MemberDTO m:list) {
        System.out.println(m.getId()+":"+m.getPw()+":"+m.getName());
        request.setAttribute("id", m.getId());
        request.setAttribute("pw", m.getPw());
        request.setAttribute("name",m.getName());
    }
    rd.forward(request, response);

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
        //response.getWriter().append("Served at: ").append(request.getContextPath());
}

}

Yangsansam commented 2 years ago

package dao;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList;

import dto.MemberDTO;

public class MemberDAO {

//데이터베이스 접속 - 커넥션 객체 얻기
    public Connection dbConnect() throws Exception {
        Class.forName("oracle.jdbc.OracleDriver");
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String id   ="system";
        String pw = "1234";

        Connection con = DriverManager.getConnection(url,id,pw);
        return con;

    }
//회원 등록
// 1. DB 접속 
    //2. 쿼리준비
    //3. 쿼리실행 statement 객체 또는 preparedstatment 객체 의 excuteupdate() 메소드를 활용
    public int insertMember(MemberDTO m) throws Exception {
        Connection con = dbConnect();
        String sql = "insert into d_member values(?,?,?)";
        PreparedStatement pstmt =con.prepareStatement(sql);
        pstmt.setString(1,m.getId());
        pstmt.setString(2,m.getPw());
        pstmt.setString(3,m.getName());
        int result = 0;
    result = pstmt.executeUpdate();

     return result; 

    }
//회원 조회 -회원 전체 목록을 결과로 받아내기 위해서 실행 시키는 메서드 

public  ArrayList<MemberDTO>getAllList() throws Exception{
     ArrayList<MemberDTO> mlist = new ArrayList();
        /*
         * MemberDTO memeber1 =new MemberDTO(); memeber1.getId(); MemberDTO memeber2
         * =new MemberDTO(); MemberDTO memeber3 =new MemberDTO();
         * 
         * mlist.add(memeber1); mlist.add(memeber2); mlist.add(memeber3);
         */
     Connection con = dbConnect();
        String sql = "select * from d_member";
        PreparedStatement pstmt =con.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        //1. 데이터 베이스에서 전체 데이터를 가져오기2.데이터 베이스에서 가져온 데이터를 MemberDTO 형태로 만들기 3. 회원 목록 배열(리스트)완성하기
        //
    while(  rs.next()) { //몇개의 데이터가 있는지모르기때문에 while 문을쓴다.
        MemberDTO member = new MemberDTO();
        //String id = rs.getString("id");
        //member.setId(id); 방식을 아래 처럼 간결하게 만들기.
        member.setId(rs.getString("id"));
        member.setPw(rs.getString("pw"));
        member.setName(rs.getString("name"));

        mlist.add(member);
    }

     return mlist;

    }

//회원 상세조회(아이디값으로 조회)
public MemberDTO getMember(String id) throws Exception {
    MemberDTO member = new MemberDTO();

     Connection con = dbConnect();

        String sql = "select * from d_member where id =?";
        PreparedStatement pstmt =con.prepareStatement(sql);
        pstmt.setString(1,id);
        ResultSet rs = pstmt.executeQuery();

        if(rs.next()) {
            member.setId(rs.getString("id"));
            member.setPw(rs.getString("pw"));
            member.setName(rs.getString("name"));
        }

        return member;
}

}

Yangsansam commented 2 years ago

`<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

Insert title here

회원 목록 출력

id pw name
<%request.getParameter("id"); %> ${id} ${param.name}
`