누르면 save로 넘어가짐
게시글 작성 페이지 이동
dto 값을 한번에 다 담기위해 @ModelAttribute 사용
밑줄 자동완성
repository자동생성자
dto -> entity
dto 저장된 값을 entity로 바꿈
entity Class, id값
최종정리!!!
1. controller에서 dto값을받고 service에 넘김
2. service에서 dto에서 entity바꾸는작업을 해야해서 repository에 넘김
3. repository에서 entity(class)를 받아 db에 역활수행
4. entity에서 html입력한값을 boardDTO담고 db에 저장한 후 html작성한 값을 entity에 set 저장
5. entity @colum 위에 컬럼을 만들어주지만
값을 입력받지는 못함 그래서 static이나 무언가 해줘야함
목록죄회이기 때문에 Model 입력된 값을 가져오고
List로 담아서 저장
입력한 값이 보여야 하기때문에 addAttribute 사용
controller에 dto로 넘겨줘야하기에 위에 entity List를 for문으로 돌려서 dto 바꿈
service에 entity값을 dto로 바꾸게 도와줌
each에 board: ${boardList}는 controller에서 하나씩 꺼내와서 쓰겠다고 선언
(||) 쓰면 id값을 찾고
쓰지않으면 오류
Hits(조회수), id(게시글 조회) 2개 나눠서
JPA(repository) 별도로 추가된 메서드를 사용하면
@Transactional추가해야 한다.
optionalBoardEntity(입력한 부분이 맞으면)
optionalBoardEntity.get(); 가져와서
boardDTO 저장
entity 기준으로 쿼리를 짬
1. BoardEntity -> table이름을 보통쓰지만 entity로 사용했기에 entity로 씀
2. boardEntity를 b로 약칭함
3. entity에 정의한 컬럼이 온다. BoardEntity -> boardHits 접근한다.
4. BoardEntity에 있는 id
5. 계속 바뀌는 부분
6. :id가, @Param("id") 매칭됨
update나 delete 실행하려면 @Modifying 추가
따로 update가 없어서 save로 해야함
조회할 때 id 값이 필요하니 id 값 넣어줌
- 타임리프문법
- GetMapping 보여지는 값이야서
- DB에서 가져온 비밀번호
그 밑에 사용자가 입력한 비밀번호
@PageableDefault(page = 1) -> 기본적으로 1페이지를 주겠다
Model 데이터를 담아가야해서
Page -> spring에서 지원함
페이지글을 모두 가져와야해서 Page<BoardDTO<사용
paging이름으로해서 service에서 처리하겠다.
- 몇페이지를 보고싶은지
- 한 페이지에 몇개를 볼건지
- 어떻게 정렬해서 가져올껀지, id -> entity기준
map(board(entity) -> BoardDTO)로 옮겨 담는다는 뜻
위에값들도
map 써서 따로 담아야함
board - > entity
결국 entity값을 dto변환
Alt+Insert
생성자를 사용해서 여기서만 사용할 수 있게끔 제한
파랑줄 parameter
보라줄 retrun
retrun 잘 이루어지고 있는지
(보라줄) 상세조회를 할 때 페이지 번호를 가져간다
자기번호가 어딨는지 알려줌
(빨간줄) 타임리프 문법 위에주소 page=1 이런식으로 보여줌
(회색줄) 사용자가 입력한 값 위에 회색이 하나 작은 값 가지고있음
보고있는거 보다 하나 작음
(파랑줄) controller -> startPage/endPage 이용 for문
1. 순차적으로 값을 만들어주고
2. number 하나 작은 값에서 +1 해서 원래 페이지
맞으면 ${page} 현재페이지
틀리면 링크가 달리고 현재페이지는 클릭 안되게 함
해달 페이지로 가지게 끔
3. if, else 같은 느낌
(연두줄) 위에 get.number에 +1
(노랑줄) 끝페이지
detail.html -> 페이징 주소값을 같이 가져온다(목록에)