JSP

[JSP] JDBC_4 (싱글톤 패턴 + VO, DAO + CRUD)

(งᐛ)ว 2023. 10. 27. 11:54
728x90

이번엔 CRUD를 이용해서 싱글톤패턴의 또다른 예제를 보자. 

 

학생들의 성적정보를 데이터베이스에 테이블 추가했다고 가정함 (테이블명 : SUNGTB) 추가방법은 이전글 JDBC_1 참고

 

+) 학생번호는 자동으로 생성될 수 있게끔 시퀀스를 이용해보자.

CREATE SEQUENCE SEQ_SUNGTB_NO;

데이터를 INSERT할 때 시퀀스적용은 시퀀스명.NEXTVAL 으로 한다.

INSERT INTO SUNGTB VALUES(SEQ_SUNGTB_NO.NEXTVAL,'홍길동',77,88,99);

 

[DB] 시퀀스(SEQUENCE)

시퀀스(SEQUENCE) CREATE SEQUENCE 시퀀스명; 오라클 데이터베이스에서 특정 규칙에 맞는 연속숫자를 생성하는 객체 예를들면, 회원가입시 가입자들에게 또는 게시판의 게시글에 순차적으로 번호를 부

studywithjw.tistory.com

 

+) 총점과 평균을 같이 조회하고싶다면 VIEW로 만들자 (VIEW는 조회전용임)

CREATE VIEW SUNGTB_VIEW AS (

     SELECT S.*, 
          (KOR+ENG+MATH) "TOT"
          ROUND((KOR+ENG+MATH)/3,1) "AVG",
          RANK() OVER(ORDER BY (KOR+ENG+MATH) DESC) "RANK"
     FROM SUNGTB S
);

 

[DB] VIEW

VIEW CREATE VIEW 뷰이름 AS( 쿼리문 ) 기존의 테이블은 그대로 놔둔 채 필요한 컬럼 및 새로운 컬럼을 만드는 가상의 테이블 실제 데이터가 저장되는 것은 아니지만 VIEW를 통해 데이터를 관리할 수 있

studywithjw.tistory.com

 

 

 

DBServer.java파일은 그대로 사용가능 (캡쳐생략)

 

VO / DAO

 

JSP

student.jsp

 

 

결과

 


 

학생정보 추가하기 기능만들기 

 

JSP

student.jsp 내용추가

 

<input type ="button" value = "학생정보 추가하기" onclick="location.href='sung_register.jsp'">

👉 '학생정보 추가하기'라는 버튼을 눌렀을 때 sung_register.jsp 파일로 페이지 이동

 

 

결과 

 

 

sung_register.jsp 

10~13행 let □= f.□.value.trim(); 는 유효성체크를 위한 부분으로 유효성체크를 하지 않는다면 없어도 된다. 

35행 f.action = "register.jsp"; 는 파라미터를 받아주기 위해 필요한 파일로써 화면에서 보여지는건 없다. 넘길때 자바스크립트, 받을때 jsp이므로 필요한 파일일뿐임

21행 정규표현식 참고

 

 

register.jsp DAO

jsp로 받아서(8~11행) 객체로 포장(14~18행)

 

 

결과

 


 

학생정보 삭제 기능만들기 

 

JSP

student.jsp 내용추가

 

<input type="button" value="삭제" onclick="del('<%=sv.getNo()%>')">

👉 삭제버튼을 눌렀을 때 del() 메서드 실행하는데 누구를 삭제해야할지 모르므로  del() 메서드 안에 파라미터로 '<%=sv.getNo()%>' 학번을 전달함

**버튼을 반복문 안에서 생성하면 자동으로 반복문만큼 버튼생성됨

 

 

결과

 

 

del()은 자바스크립트 메서드이므로 

student.jsp 내용추가

del() 메서드 안에 파라미터로 학번을 받았으므로 function del(no)

29행 location.href="sung_del.jsp?no="+no; 는 데이터를 받기위해 필요한 파일로써 화면에서 보여지는건 없다.

 

 

sung_del.jsp DAO

 

결과

 


 

학생정보 수정 기능만들기 

 

JSP

student.jsp 내용추가

 

<input type="button" value="수정" onclick="modify(...)" >

👉 수정버튼을 눌렀을 때 modify() 메서드 실행하는데 기존 값들을 그대로 가져오기위해  modify() 메서드 안에 파라미터로 학번, 이름 등을 전달함 

**버튼을 반복문 안에서 생성하면 자동으로 반복문만큼 버튼생성됨

 

 

결과

 

 

modify()는 자바스크립트 메서드이므로 

student.jsp 내용추가

modify() 메서드 안에 파라미터로 학번 등 5개의 정보를 받았으므로 function modify(no,name,kor,eng,math)

 

33행 location.href="sung_update.jsp?no="+no+"&name="+name+"&kor="+kor+"&eng="+eng+"&math="+math;

👉 물음표는 URL에서 쿼리 문자열의 시작을 나타낸다. 
쿼리 문자열은 웹 페이지로 데이터를 전달하는 데 사용되고 일반적으로 키-값 쌍의 형태로 구성되며, 각 키-값 쌍은 &으로 구분한다.

 

 

sung_update.jsp

 

7행 int no = Integer.parseInt(request.getParameter("no"));

각 행을 구별할 수 있는 기준인 넘버도 파라미터로 받았지만,

정보수정시 넘버(학번)을 넣을 필요는 없으므로 폼태그 내부에

28행 <input type="hidden" name ="no" value="<%=no%>"> 으로 숨겨놓는다.

 

this.form

👉 input태그를 감싸고있는 폼태그를 의미하는데, 그 폼태그를 자바스크립트의 파라미터(19행) 로 보내서 폼태그의 내용을 전부 보낸다! (폼태그안의 input태그가 갖고있는 내용들을 보낸다)

 

 

sung_modify.jsp DAO

 

결과

 

 

 

 

728x90

'JSP' 카테고리의 다른 글

[JSP] EL 표기법  (0) 2023.10.29
[JSP] JDBC_5 (싱글톤 패턴 + VO, DAO + CRUD)  (0) 2023.10.29
[JSP] JDBC_3 (싱글톤 패턴 + VO, DAO)  (1) 2023.10.26
[JSP] JDBC_2  (1) 2023.10.25
[JSP] JDBC_1  (0) 2023.10.23