[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라는 파일을 지워주고 실행하면 해결된다.
이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
다음 글로 찾아오겠습니다!