목록Back-End/Spring (72)
09009

댓글 테이블 설계 CommentDTO 생성 package com.yeongin.boardTest.dto; import com.yeongin.boardTest.entity.CommentEntity; import lombok.*; import java.time.LocalDateTime; @Getter @Setter @ToString @NoArgsConstructor @AllArgsConstructor public class CommentDTO { private Long id; private Long boardId; private Long memberId; private String content; private LocalDateTime regDate; } CommentEntity 생성 package com...

게시글 수정 detail.html 목록으로 수정 삭제 BoardController // 게시글 수정 페이지 @GetMapping("/update/{id}") public String updateForm(@PathVariable Long id, Model model, HttpSession session) { MemberDTO sessionUser = (MemberDTO) session.getAttribute("memberDTO"); if (sessionUser != null) { BoardDTO boardDTO = boardService.findById(id); model.addAttribute("boardUpdate", boardDTO); return "board/update"; } else { retu..

게시글 상세조회 main.html BoardController // 게시글 상세보기 @GetMapping("/{id}") public String findById(@PathVariable Long id, Model model) { boardService.updateReadCount(id); BoardDTO boardDTO = boardService.findById(id); model.addAttribute("board", boardDTO); return "board/detail"; } BoardRepository 별도의 쿼리가 필요한 상태이면 @Query를 사용한다. - entity 기준으로 쿼리 작성 : entity 기준으로 쿼리 작성 시, 약어와 entity에 정의된 컬럼으로 작성하는 것이 필수 up..

게시판 테이블 설계 BoardDTO 생성 package com.yeongin.boardTest.dto; import com.yeongin.boardTest.entity.BoardEntity; import lombok.*; import java.time.LocalDateTime; @Getter @Setter @ToString @NoArgsConstructor @AllArgsConstructor public class BoardDTO { private Long id; private Long memberId; private String title; private String content; private int readCount; private LocalDateTime regDate; private Strin..

로그인 로그인 페이지 loginPage.html 로그인 MemberController // 로그인 포르세스 @PostMapping("/loginProcess") public @ResponseBody String loginProcess(@ModelAttribute MemberDTO memberDTO, HttpSession session) { MemberDTO sessionUser = memberService.login(memberDTO); if (sessionUser != null) { session.setAttribute("memberDTO", sessionUser); return "ok"; } else { return "no"; } } MemberService // 로그인 public MemberDTO..

프로젝트 생성 application.yml# 서버 포트 설정server: port: 8082 servlet: encoding: charset: UTF-8 force: true enabled: true# database 연동 설정spring: datasource: driver-class-name: oracle.jdbc.OracleDriver url: jdbc:oracle:thin:@localhost:1521:XE username: password: thymeleaf: cache: false # spring data jpa 설정 jpa: database-platform: org.hibernate.dialect.OracleDiale..

detail.html const commentWrite = () => { const writer = document.getElementById("commentWriter").value; const contents = document.getElementById("commentContents").value; console.log("작성자: ", writer); console.log("내용: ", contents); const id = [[${board.id}]]; $.ajax({ // 요청방식: post, 요청주소: /comment/save, 요청데이터: 작성자, 작성내용, 게시글번호 type: "post", url: "/comment/save", data: { "commentWriter": writer, ..

CommentService 생성 package com.yyi.board.service; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class CommentService { } CommentEntity 생성 package com.yyi.board.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @Entity @SequenceGenerator( name = "comment_seq_generator" , sequenceName = ..

detail.html jquery cdn 코드 추가 * input 태그에 접근하기 때문에 value 속성에 접근이 가능하다는 것을 인지할 것. 목록 수정 삭제 댓글작성 현재까지의 전체 코드 id title writer date hits contents image 목록 수정 삭제 댓글작성 여기까지 작성하고 실행 댓글은 어떤 게시글에 작성된 댓글인지의 여부가 중요하다. 게시글번호가 반드시 같이 저장되어야 한다. 댓글 작성 ajax 코드 추가 const commentWrite = () => { const writer = document.getElementById("commentWriter").value; const contents = document.getElementById("commentContents")..

save.html writer: pass: title: contents: file : BoardDTO 코드 추가 private MultipartFile boardFile; // save.html -> controller에 파일을 담는 용도 private String originalFileName; // 원본 파일 이름 private String storedFileName; // 서버 저장용 파일 이름 private int fileAttached; // 파일 첨부 여부 (첨부 1, 미첨부 0) BoardController 코드 확인 (추가한 코드 없음) @PostMapping("/save") public String save(@ModelAttribute BoardDTO boardDTO) { System.o..

index.html 글작성 글목록 페이징목록 BoardController BoardService 게시글 목록에서 보여줘야 하는 데이터: id, writer, title, hits, createdTime 위 데이터들을 담을 수 있는 DTO 생성자를 하나 추가해주어야 한다. BoardDTO (단축키 : Alt + Insert) 생성자 추가하기 public BoardDTO(Long id, String boardWriter, String boardTitle, int boardHits, LocalDateTime boardCreatedTime) { this.id = id; this.boardWriter = boardWriter; this.boardTitle = boardTitle; this.boardHits = b..