[MVC SPRING] 08. 회원가입 구현하기
안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의
[NarP Series]MVC 프레임워크는 내 손에[나프1탄]
을 참고하였습니다.
MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고
나중에는 Spring Framework를 사용하는 방식의 강의입니다.
MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.
1. 회원 저장 메서드 생성
memberInsert
라는 이름을 가진 메서드를 만들고, 매개변수를MemberVO
클래스의 변수를 이용해서
받아온 값을 저장해주면 된다. 일일히 변수에 대한 데이터값을 파라미터로 받지 않고 말이다.- 그럼 받아온 값을,
insert
쿼리로 데이터베이스에 저장하면 된다. - 메서드 안에
String SQL = "insert into member(id, pass, name, age, email, phone) values(?,?,?,?,?,?)";
라는 쿼리문을 만들어준다. - 쿼리문에서,
?
를 파라미터라고 한다. - getConnect 함수를 호출해서, 데이터베이스를 연결할 수 있게 Connection 객체를 만들어주고
PreparedStatement
형 변수를 이용해서, SQL 문장을 전송할 수 있는 객체를 생성해서, 미리 컴파일을 시킨다.- 미리 컴파일을 시키는 이유는 속도가 빠르기 때문이다.
- 이제
?
로 된 쿼리 파라미터에 값만 추가해주고, 데이터베이스에 전송시키면 된다. - 코드는 다음과 같다.
public int memberInsert(MemberVO vo) {
// 1. ? (파라미터 ) 순서는 1 2 3 4 5 6 으로, 0번이 아닌 1번으로 시작한다.
String SQL = "insert into member(id, password, name, age, email, phone) values(?,?,?,?,?,?)";
int success = -1;
// 2. Connection 객체 만들기
getConnect();
// 3. SQL 문장을 전송하는 객체 생성하기
try {
ps = conn.prepareStatement(SQL); // 미리 컴파일을 시킨다. ( 속도가 빠르다. )
// 4. 파라미터에 값 추가하기
ps.setString(1, vo.getId());
ps.setString(2, vo.getPassword());
ps.setString(3, vo.getName());
ps.setInt(4, vo.getAge());
ps.setString(5, vo.getEmail());
ps.setString(6, vo.getPhone());
// 5. 전송
success = ps.executeUpdate(); // executeUpdate는, 0 or 1이 반환되는데. 반환 값이 0이면 전송이 실패된것이고 1이면 전송이 잘 된 것으로 처리가 된다.
} catch (Exception e) {
e.printStackTrace();
}
return success;
}
2. Controller에서, 회원저장 메서드 실행하기
PrintWriter out = response.getWriter();
// Model과 연동하기
MemberDAO dao = new MemberDAO();
int success = dao.memberInsert(vo);
if(success > 0) {
// 가입 성공시
out.println("insert success!");
}
else {
// 가입 실패시 예외객체를 만들어서 WAS(톰캣서버) 에게 던진다.
throw new ServletException("not insert!");
}
3. MySQL 실행하기
- 이전 공부내용에서, MySQL 실행하듯이 실행하고 서버를 실행해서 데이터들을 입력하고 가입버튼을 클릭해보자.
insert success! 라는 내용이 출력되면, sql 파일로 쿼리를 실행해서 데이터가 잘 들어갔는 지 확인하자. 난 잘됐다.
4. SQL Results 메뉴에 plug-in error가 발생할 경우 해결법
- 이클립스를 잠시 닫는다.
- 프로젝트가 들어있는 상위 폴더로 가서,
.metadata
를 클릭한다. - org.eclipse.datatools.sqltools.result 폴더 안에 들어가서 results라는 파일을 지워주고 실행하면 해결된다.
이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
다음 글로 찾아오겠습니다!