1 분 소요

안녕하세요. 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();
		}
	}


이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!