[20221006] JSP와 DB 연동하기, 성적테이블 CRUD

kangsun·2022년 10월 6일
0

JSP

목록 보기
3/16

DB 연동방식

  • JDBC

    데이터베이스와 자바를 따로 관리한다.

  • JAP

    자바안에서 데이터를 모두 관리한다.
    자바언어로 관리
    ORM 방식


basic04_web의 webapp폴더에 sql 폴더 만들고 sql파일 생성하기






sungjuk.sql


sql 파일에 sql문 한 번 복기하기

테이블삭제, 테이블생성

시퀀스 Sequence 생성,삭제



[행추가] sungjukIns.jsp

insert into sungjuk(sno, uname, kor, eng, mat, aver, addr, wdate)
values (sungjuk_seq.nextval, ?, ?, ?, ?, ?, sysdate);

[전체목록] sungjukList.jsp

select * from sungjuk order by sno desc;

[상세보기] sungjukREad.jsp

select * from sungjuk where sno=?

[행삭제] sungjukDel.jsp

delete from sungjuk where sno=?

[행수정] sungjukUpdate.jsp

update sungjuk 
set uname=?, kor=?, eng=?, mat=?, aver=?, addr=?, wdate=sysdate
where sno?






게시판 페이지의 흐름


  • 입력 → 목록 → 상세보기 → 삭제/수정

1) 입력

sungjukForm.jsp → sungjukIns.jsp 생성


  • sungjukForm.jsp생성

    weppapp\sungjuk\sungjukFrom.jsp
  • sungjukFrom.jsp
  • sungjukFrom.jsp Run
  • sungjukIns.jsp 생성






요청 IP 확인하기

  • sungjukIns.jsp
  • sungjukFrom.jsp Run
  • sungjukIns.jsp Run

    ↳ 값을 입력하고 전송을 부르면 요청 ip가 출력된다.




Oracle DB 연결 및 행추가

  • sungjukIns.jsp


↳ 자동 임포트된다 ㅋ

  • sungjukForm.jsp Run (부모 파일을 열어야함)
  • sungjukIns.jsp Run


Oracle DB 연결 및 행추가 부적합한 index 오류


1) system.out.println → out.println 으로 작성하지 않아서 텍스트가 출력되지 않았음.
2) 물음표 개수

sql.append(" VALUES (sungjuk_seq.nextval, ?, ?, ?, ?, ?, ?, sysdate) ");

물음표 uname, kor, eng, mat, aver, addr 6개를 작성해야 하는데 잘 확인하지않고 5개 작성함.
3) pstmt.setString(6, addr);
근데 이건 제대로 작성함.. index 가 일치하지 않았음.




성적입력 성공 실패 alert로 화면에 띄우기

  • sungjukIns.jsp
  • sungjukFrom.jsp Run
  • sungjukIns.jsp Run


    ↳ sungjukList.jsp는 아직 파일생성 전이기때문에 오류가 난다.
    ↳ 쉬운 에러메세지 : HTTP 상태 404 파일이 없다는 의미.

cmd에서 입력값 추가되었는지 확인하기

>sqlplus system/1234
> select * from sungjuk order by sno desc;





2) 목록

sungjukList.jsp → sungjukRead.jsp

  • sungjukList.jsp 생성

  • resultSet 추가하기

  • 출력코드 추가하기

    ↳ 코딩을 하다보면 jsp문을 중간에 넣어야할 때가 있는데 중간중간 이렇게 추가를 하다보면 코드가 더러워진다. (스파게티코드)
    mvc : 백엔드와 프론트엔드 코드를 나눠 프론트에서 코딩할 것은 프론트에서 다 작업을 마쳐서 오고 백엔드는 백엔드단에서만 작업할 수 있도록 분리시켜 작업을 해야한다.
    mvc
    모델과 c백엔드에서 다뤄야할 것을 구분해서 코딩하는것.
  • sungjukForm.jsp Run
  • sungjukList.jsp Run

출력방법

  • jsp 코드로 출력하는 방법
  • javascript 코드로 출력하는 방법
    - jsp코드로 출력하는게 더 편리하지만 mvc를 지켜서 프론트는 프론트단에서 코드작업을 하고 백엔드는 백엔드 단에서 코드를 작업해야한다.
    - 현업에선 이렇게 코딩하지않음


List - uname에 링크걸기

  • sungjukList.jsp
  • sungjukList.jsp Run
  • sungjukRead.jsp

    ↳ sungjukRead.jsp는 아직 생성하지 않았기때문에 404오류가 나오는게 정상이다.


링크에 변수 넣기


- 독립된 페이지가 서로 연결되어있는 것처럼 보이게하는 방법은 페이지가 가지고 있는 값을 주면된다. (전달값)
- 부모페이지가 자식페이지에게 값을 넘겨줘야한다.
- 내가 가지고있는 값을 상대방 페이지에 넘겨준다.

  • sungjukList.jsp

    ↳ 값에 저 select의 sno 변수를 넣어주면 된다.
%>
<tr>
	<td><a href="sungjukRead.jsp?sno=<%= rs.getInt("sno")%>"><%= rs.getString("uname") %></a></td>
	<td><%= rs.getInt("kor") %></td>
	<td><%= rs.getInt("eng") %></td>
	<td><%= rs.getInt("mat") %></td>
	<td><%= rs.getString("wdate").substring(0, 10) %></td>
</tr>

<%	
  • sungjukList.jsp Run 확인

    ↳ url에 sno 값이 들어간다.





  • sungjukRead.jsp 생성

sungjukRead.jsp?sno=3 값 받아오는 법

  • sungjukRead.jsp

    ↳ sno=? 이 값을 담아서 변수에 저장해준다.


  • sql문 작성
  • if문 작성
  • sungjukForm.jsp Run
  • sungjukList.jsp Run
  • sungjukRead.jsp Run



주소 한글로 출력

  • sungjukRead.jsp
  • sungjukRead.jsp Run





수정/삭제 페이지

  • 버튼 추가
  • sql문 분석

    ↳ sno=? 이 값을 form페이지에 넘겨주는 것이다.
    ↳ pk값을 넘겨줘야한다.

  • sql문 흐름 sno값 넘기는 것


  • 이 값을 넘겨주면 된다.



  • 수정버튼 파일뒤에 ?변수=값 을 넣어준다. (형식)
  • 수정버튼 파일뒤에 ?변수=값 을 넣어준다. (적용)
  • sungjukDel.jsp URL에 값이 들어간다.
  • sungjukUpdate.jsp URL에 값이 들어간다.





성적 삭제 sungjukDel.jsp

  • sno 변수, sql문 추가하기

  • sno 변수, sql문 추가하기







성적 수정

  • sno 변수, sql문 추가하기
    회원수정 버튼누르면 그대로 내가 입력했던 내용이 출력되어야함.
  • select 명령어부터 먼저해야함
  • 수정하고자하는 데이터를 먼저 가져와야한다.

문제 분석

  • ① sungjukUpdate.jsp
    수정하고자하는 행을 DB에서 가져와서(select문 먼저 가져온다)sungjukRead.jsp, 사용자가 작성했던 내용을 그대로 성적폼에 출력하고 sungjukForm.jsp

  • ② sungjukUpdateProc.jsp
    사용자가 다시 입력한 내용으로 수정해야한다. (update문은 이 순서에서 update문을 사용해야한다.)


① sungjukUpdate.jsp

sungjukRead.jsp 내용을 그대로 가져온다.



사용자가 작성했던 내용을 그대로 성적폼(sungjukForm.jsp)에 출력

  • sungjukForm.jsp에서 form태그 복사
  • 그대로 sungjukUpdate.jsp에 있는 if문에 폼 붙여넣기
  • ② sungjukUpdateProc.jsp를 위한 작업

    -value값 추가. rs=result값을 넣어준다.


  • 확인작업 / 결과가 폼에 그대로 나타난다.

수정 주소


만약 멍청이가 주소를 제주로 설정해두었다면 주소가 제주도록 먼저 보이도록 설정해야한다.


if문으로 checked==true 로 주면 선택한 주소가 보이도록 설정해줄 수 있다.

  • 주소부분 코딩
  • 주소수정 확인
  • 주소에 선택되어졌던 주소가 보여진다.



② sungjukUpdateProc.jsp 생성 (여기서 진짜 수정 Update문)

  • 수정방법


  • 하지만 sno 값을 어디서 가져와야하는지?
    sungjukUpdate.jsp form안에는 sno 값이 없어서 넘어오지 않는다.
    hidden 속성으로 담아서 가져와야한다.

  • inpuut에 hidden속성 추가해서 sno 담아준다.

1. 한글 인코딩

2. sungjukUdate.jsp에서 사용자가 입력한 정보 가져와서 변수에 담기

3. update sql문 작성


그럼.. 끝...임..

나에게 주는 과제..
오늘
sungjukUpdateProc.jsp
이거 분석하기..
그리고..
부트스트랩으로 꾸미기









내일 배울 것.. bin ..? 예습해야겠다

오늘거 복습하지 않으면 내일거.. 배우기 힘들다하네요....

profile
코딩 공부 💻

0개의 댓글