티스토리 뷰

반응형

안녕하세요. Nerd-Lee입니다.

공부 내용은, 인프런 박매일님의
[NarP Series]MVC 프레임워크는 내 손에[나프1탄] 을 참고하였습니다.

MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고

나중에는 Spring Framework를 사용하는 방식의 강의입니다.

MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.

진도가 빠르게 나가지 않아, 중요하다고 생각하는 부분들만 작성할 예정입니다.


1. unique key 만들기

  • 기존 회원테이블에 id를 unique key로 만들어서, 아이디가 중복이 될 경우 테이블에 추가를 못하게 만든다.

-- 테이블 삭제하기
drop table member;

-- 테이블 생성
create table member(
number int primary key auto_increment,
id varchar(20) not null,
password varchar(20) not null,
name varchar(30) not null,
age int not null,
email varchar(30) not null,
phone varchar(30) not null,
unique key(id)
);

2. MemberListController 및 DAO 메서드 구현하기

  • member 테이블에 저장되어 있는 데이터들을 가져와서 출력해주는 서블릿을 하나 만든다.
  • 이름은 MemberListController 다.
  • MemberDAO에서 전체 회원리스트를 가져오는 메서드를 구현한다.
  • 이번 select 쿼리는 executeUpdate가 아닌 executeQuery 라는 메서드로, 실행을 시킨다.

    실행을 하면, 반환값은 ResultSet이기 때문에, 위에 만들어준 ResultSet 형 변수 rs로 대입시킨다.
  • 그리고 rs.next() 라는 함수를 이용해서, 값을 받아올 수 있을 때까지 받아온다.
  • 그 다음, ArrayList를 만들어서, 값을 저장하면 된다.
// 전체 회원 리스트 가져오기
    public ArrayList<MemberVO> memberGetList() {
        String SQL = "select * from member";

        // 데이터베이스 연결
        getConnect();

        ArrayList<MemberVO> list = new ArrayList<MemberVO>();

        try {
            ps = conn.prepareStatement(SQL);

            rs = ps.executeQuery();

            while(rs.next()) {
                int number = rs.getInt("number");
                String id = rs.getString("id");
                String password = rs.getString("password");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                String email = rs.getString("email");
                String phone = rs.getString("phone");
                MemberVO vo = new MemberVO(number, id, password, name, age, email, phone);
                list.add(vo);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            dbClose();
        }
        return list;
    }

    // 데이터베이스 연결 해제
    public void dbClose() {
        try {
            if(rs != null) {
                rs.close();
            }
            if(ps != null) {
                ps.close();
            }
            if(conn != null) {
                conn.close();
            }
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }


이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함