수정하는 기능을 넣어보자
순서는 다음과 같다.
1. 표에 업데이트 링크를 만든다.
2. 업데이트 양식 페이지를 만든다.
3. 서블렛에서 JDBC에 업데이트 요청하는 함수를 만든다.
4. JDBC에서 업데이트하는 함수를 만든다.
업데이트 링크 넣기
링크를 하나하나 만들어주자
이 링크에는 목적지값이 있고
파라미터도 있는데 각 파라미터에 값이 있다...
링크를 타게되면 링크의 목적지는 서블렛으로 가고
서블렛에 가면 command의 값 LOAD를 통해 분기를 거친다
studentId 값을 이용하여 데이터베이스로부터 학생 데이터를 가져온다.
switch 문에 추가하고 함수를 만들어 준다.
loadStudent 함수에는 무엇이 들어갈까?
studentId를 통해서 Student객체를 JDBC에서 가져오고
jsp 페이지로 보낸다.
JDBC에서는 id를 통해서 어떻게 객체를 가져올까?
string인 id를 int로 변환
데이터베이스 연결
sql생성 후 객체 선택
preparestatement생성
파라미터 설정
실행
결과값에서 데이터획득
업데이트 링크 클릭 시, 서블렛으로 LOAD 파라미터 값을 전한다.
그러면 서블렛은 LOAD값으로 JDBC를 이용하여 데이터베이스에서 학생 객체 데이터를 가져온다.
학생 객체 데이터 값을 업데이트 페이지에 전송한다.
업데이트 페이지에서 완료버튼을 누르면 서블렛에 UPDATE 파라미터를 보낸다.
업데이트 페이지를 만들자
기존 add페이지를 재활용하는데 달라진 점은 먼저 Update로 바꾼다.
그리고 input 값에 studentId를 추가한다.
전체를 보면 입력값에다가 미리 바꾸려는 학생의 데이터를 넣어놨다..
서블릿에 업데이트 요청함수를 만들자
서블릿에서 업데이트함수는 어떻게 작동할까?
업데이트 요청에서 데이터를 읽는다.
학생 객체를 생성한다.
데이터베이스에 입력한다.
데이터베이스에서 학생 리스트를 읽고
리스트 페이지를 부른다.
JDBC에서 업데이트 작업을 하는 함수를 만들자
연결하는 부분을 만든다.
업데이트 sql 문을 생성한다.
preparestatement로 실행한다.
파라미터 설정
sql 문 실행
삭제기능 넣기
list-student.jsp 리스트를 보여주는 페이지에서 기존에 있던 update 형식을 그대로 이용한다.
서블릿으로 가는 링크를 만들어주고 파라미터값을 넣는다.
시스템 원리를 다시 정리하자면
리스트 페이지를 구현할 때 JDBC를 통해서 데이터베이스에서 객체 리스트를 가져오고
객체리스트를 JSP에 전달하면 JSP에서 객체 리스트를 가지고 표현한다.
리스트에서 링크는 필요한 기능에 따라 파라미터값을 갖고 있고
서블릿으로 값을 전달한다. 서블릿은 값을 받으면 값의 종류에 따라서 함수를 실행한다.
함수의 기능에 따라 필요한 값은 JDBC를 통해 얻는다.
이러한 과정을 반복하는 원리.
방금 리스트 페이지에서 삭제 링크를 누르면
삭제에 필요한 id나 커맨드값을 서블릿을 목적지로 전달하고
서블릿은 삭제 커맨드를 받으면 관련된 함수를 실행한다.
함수 실행에 필요한 데이터값은 JDBC를 통해 얻는다.
함수에서 실행되는 절차
삭제되는 id값을 구하고
데이터베이스에서 데이터를 삭제하고
리스트 페이지에 변한 데이터를 전달한다.
서블릿에서 받는 request에서 DELETE커맨드를 받았으니 deleteStudent 함수를 실행
request 파라미터에서 id를 변수에 저장하고 JDBC에 id를 전달하여 JDBC 에서 삭제 기능을 실행시킨다.
그리고 나서 리스트 함수를 실행한다.
JDBC 입장에서는 ID값을 받았으니 해야할 것은
ID값을 int로 변경
데이터베이스에 연결하기
삭제하는 sql을 생성하고
preparestatement에 sql 입력
sql 파라미터 입력
'컴퓨터공학 > JSP | Servlets | JDBC' 카테고리의 다른 글
JSP> 파일 업로드/다운로드 2 (0) | 2021.03.31 |
---|---|
JSP> 파일 업로드/다운로드 기능 넣는 법 (0) | 2021.03.31 |
JDBC> 데이터 베이스에 연결하여 데이터 가져오기3 (0) | 2021.03.24 |
JDBC> 데이터 베이스에 연결하여 데이터 가져오기2 (0) | 2021.03.24 |
Servlet> MVC pattern (0) | 2021.03.23 |