Spring Framework

스프링 프로젝트 만들기 3일차(select문 resultType, session,dto 등등)

꾸주니12 2022. 5. 21. 17:10

DB와 연결하기 위해선?

1. 필요한 라이브러리 추가 

2. DB관련 설정 추가

3. 인터페이스,xml 필요 

 

 

페이지 간 이동  : spring 에서는 페이지 이동조차 컨트롤러에 요청을 해야 한다.

스프링은 뷰에서 뷰로 이동하는걸 못한다.(jsp에서는 됐었지) 

모든 제어권을 스프링이 가져감 (제어역행!!) 그래서 controller한테 맏겨야 된다.

05_MemberApp   login.jsp

 

 

 

select문 resultType

  • select 문은 결과값이 존재하므로 resultType을 지정 해 준다. 
  • db에서 id 데이터타입이 varchar 즉 자바에선 문자열 
  • resultType: 내가 가져오는 타입이 이거다  
  • resultType은 하나만 적을 수 있다

 

 

Session

  • 로그인을 할 때는 반드시 세션 처리가 있어야함 (왜 세션에 저장하는지는 세션과 쿠키 배울 때 알았졍)
  • 스프링에서 session은 내장객체가 아님 (jsp에서는 내장객체)
  • 세션은 request에서 가져온다 / 혹은 Httpsession 으로 Session만 인자값으로 부를 수 있다.
    • (controller 메서드에 request를 인자값으로 부르는 이유는 세션도 쓰고,파라메터 값도 가지고오고 할거니까)
    • 왜 request야? : response 데이터를 담을 없다 / 페이지를 던지는 역할 / Request는 요청한 Client의 정보를 담고있는 객체

 

 

 

Controller 클래스에서 요청하는 법 

1. 메서드 호출

2. 요청자체를 보낸다 (redirect)

 

redirect는 데이터를 실어 보낼 수 없다. 그래서 msg변수에 담아 보낼 내용은 없이 요청을 보내고 필요하면 list메서드에서 쓰면됨 

 

DTO

로그인 성공을 하면 메인페이지에서 회원리스트를 보이게 할거임 

그런데 데이터를 한번에 가져오려면 클래스에 담아서 가져와야함 -> DTO :데이터를 한번에 담고있는 클래스 

또 리스트가 많아서 배열형태로 가져올거임!

 

- resultType은 하나만 적을  있음 (String,String,int,String) 이렇게 안됨 

- 가져오는 데이터의 컬럼이 1개 이상일 경우 DTO를 사용한다.

- 사용할 DTO는 풀 경로를 명시해야 한다

homecontroller

- 크기를 지정해주지 않아도 되는 arraylist 로 memberDTO 타입의 배열(list)에 담는다.

- model 객체 쓸 때 값으로 배열형태 들어가는구나! Object 에서 볼수있음

- main페이지에서 c태그 foreach로 하나씩 꺼내줄거임 

 

 

/delete

main으로 안보내고 list 보낼까? main 원래 하얀페이지!
list 보이는건 list요청을 받아서 하는거야.

delete하고 list로 돌아가야징! 

homecontroller

 

 

 

 

 

 

 

 

<html>

button태그에서나 input태그 타입이 button일 때 onclick 속성은 현재페이지에서 이동하는 경우 사용한다.

<button type="button" onclick="location.href="#">버튼</button>

<table></table>

Td를 tr안에  감싸줘야 한줄에 나옴 

Table thead/ tbody 나눠주면 편함

 

<thead>
    <tr>
        <th>ID</th><th>이름</th><th>삭제</th><th>상세보기</th>
    </tr>
</thead>

 

 

 

<에러>

405 : Method 방식 안맞으면 405! (jsp파일에 작성한 method방식과 controller에 requestmapping이 일치하지 않을 때 )

Warn 경고는 너무 신경쓰지말기