중고헌터 - 댓글 기능 구현 5 - 댓글 테스트
2022. 10. 28. 22:14
프로젝트/중고헌터
댓글 리스트 보이기 임시 데이터 let id = 'asdf2'; let bno = ${boardDto.bno}; let page = 11; let pageSize=10; let showList = function(page){ $.ajax({ type:'GET', // 요청 메서드 url: '/comments?bno='+bno+'&page='+page+'&pageSize='+pageSize, // 요청 URI success : function(result){ // 서버로부터 응답이 도착하면 호출될 함수 $("#commentList").html(toHtmlComment(result.list)); // 댓글 리스트 $(".paging").html(toHtmlPaging(result.ph)); // 댓글 페이징..
중고헌터 - 댓글 기능 구현 4 - 대댓글
2022. 10. 10. 16:56
프로젝트/중고헌터
대댓글 버튼과 등록 버튼 만들기 등록 tmp += '답글' $("#commentList").on("click", ".replyBtn", function(){ // 1. reply 폼을 답글 밑으로 옮기고 $("#replyForm").appendTo($(this).parent()); // 2. 답글을 입력할 폼을 보여줌 $("#replyForm").css("display", "block"); }); commentTest comment: SEND 수정 등록 대댓글 정렬을 위해 commentMapper 의 selectAll 바꾸기 SELECT cno, bno, pcno, comment, commenter, reg_date, up_date FROM comment WHERE bno = #{bno} ORDER BY..
중고헌터 - 댓글 기능 구현 3 - UI 구현
2022. 10. 10. 00:39
프로젝트/중고헌터
UI 구현할 test.jsp 만들기 commentTest SEND 삭제 기능 만들기 요청이 와야 삭제 버튼이 만들어 지는데 요청이 오기 전에 삭제 버튼 코드가 실행되니 삭제 버튼을 눌러도 창이 나타나질 않는다. 그래서 이벤트를 고정된 요소인 $("#commentList") 에 건다. tmp += '삭제' // $("#.delBtn").click(function() $("#commentList").on("click", ".delBtn", function(){ alert("delBtn clicked"); }); }); commentTest SEND 삭제 테스트 // $("#.delBtn").click(function() $("#commentList").on("click", ".delBtn", function..
중고헌터 - 댓글 기능 구현 2 - Controller 작성
2022. 10. 9. 16:06
프로젝트/중고헌터
CommnetController 작성 package com.jcy.usedhunter.controller; import java.util.List; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; ..
중고헌터 - 댓글 기능 구현 1 - DAO와 Service의 작성
2022. 10. 8. 20:19
프로젝트/중고헌터
댓글 기능 구현 순서 1. DB테이블 생성 2. Mapper XML 작성 3. DAO 작성 & 테스트 4. Service 작성 & 테스트 5. 컨트롤러 작성 & 테스트 6. 뷰UI) 작성 & 테스트 DB테이블 생성 CREATE TABLE `usedhunter`.`comment` ( `cno` INT NOT NULL AUTO_INCREMENT, `bno` INT NOT NULL, `pcno` INT NULL, `comment` VARCHAR(3000) NULL, `commenter` VARCHAR(30) NULL, `reg_date` DATETIME NULL DEFAULT now(), `up_date` DATETIME NULL DEFAULT now(), PRIMARY KEY (`cno`)) ENGINE =..
중고헌터 - REST API와 Ajax
2022. 10. 8. 14:49
프로젝트/중고헌터
JSON 이란 Java Script Object Notation - 자바 스크립트 객체 표기법 { 속성명1 : 속성값1, 속성명2: 속성값2, ... } [{ 속성명1 : 속성값1, 속성명2: 속성값2, ... }] : 객체 배열 { 키1:{속성명1 : 속성값1,...}, 키2:{속성명2: 속성값2, ... }, ...} : Map stringify() 와 parse() JS 객체를 서버로 전송하려면, 직렬화(문자열로 변환)가 필요 서버가 보낸 데이터(JSON, 문자열)를 JS 객체로 변환할 때 역직렬화가 필요 JSON.stringify() - 객체를 JSON 문자열로 변환(직렬화 JS객체 -> 문자열) JSON.parse() - JSON 문자열을 JS 객체로 변환(역직렬화 문자열 -> JS객체) Aja..
중고헌터 - 게시판 검색 기능 구현하기
2022. 10. 6. 18:23
프로젝트/중고헌터
MyBatis의 동적 쿼리(1) - sql과 include 공통 부분을 로 정의하고 로 포함시켜 재사용 AND title LIKE concat("%", #{keyword}, "%") AND writer LIKE concat("%", #{keyword}, "%") AND (title LIKE concat("%", #{keyword}, "%") OR content LIKE concat("%", #{keyword}, "%")) WHERE TRUE ORDER BY reg_date DESC, bno DESC LIMIT #{offset}, #{pageSize} SELECT count(*) FROM board WHERE TRUE MyBatis의 동적 쿼리(2) - if MyBatis의 동적 쿼리(3) - choose..
중고헌터 - 게시판 읽기, 쓰기, 수정, 삭제 구현 2
2022. 10. 6. 01:08
프로젝트/중고헌터
글쓰기 기능 추가, boardList 에 글쓰기 버튼 추가 후 버튼 누르면 board/write로 이동 boardList.jsp 글쓰기 중고헌터 Home Board ${loginOut} Sign in 글쓰기 번호 제목 이름 등록일 조회수 ${boardDto.bno} ${boardDto.title} ${boardDto.writer} ${boardDto.reg_date} ${boardDto.view_cnt} board/write 에 빈 게시판 폼 나타내기 board.jsp bno 는 hidden 타입으로 model 에 담긴 mode 가 new 이면 제목이 게시물 글쓰기로 title, content 가 readonly 가 아니게 하기 게시물 ${mode=="new" ? "글쓰기" : "읽기"}..
중고헌터 - 게시판 읽기, 쓰기, 수정, 삭제 구현
2022. 10. 3. 17:25
프로젝트/중고헌터
기능별 URI 정의 URL : 리소스 경로, full 경로 URI : identifier, 유일 URL, URL : 비슷함 기능 URI HTTP 메서드 설명 읽기 /board/read?bno=번호 GET 지정된 번호의 게시물을 보여준다. 삭제 /board/remove POST 게시물을 삭제한다. 쓰기 /board/write GET 게시물을 작성하기 위한 화면을 보여준다. /board/write POST 작성한 게시물을 저장한다. 수정 /board/modify?bno=번호 GET 게시물을 수정하기 위해 읽어온다. /board/modify POST 수정된 게시물을 저장한다. 읽기 기능 구현 BoardController.java read 메서드 추가 @GetMapping("read") public String..
중고헌터 - 게시판 목록 만들기
2022. 10. 3. 13:16
프로젝트/중고헌터
게시판 목록 만들기 boardList.jsp에 게시판 목록 추가 VSCode 를 사용해서 간단하게 작성 중고헌터 Home Board ${loginOut} Sign in 번호 제목 이름 등록일 조회수 ${board.bno} ${board.title} ${board.writer} ${board.reg_date} ${board.view_cnt} BoardController.java package com.jcy.usedhunter.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http..
중고헌터 - MyBatis로 DAO 작성
2022. 10. 2. 14:18
프로젝트/중고헌터
DTO(Data Transfer Object) 계층 간의 데이터를 주고 받기 위해 사용되는 객체 VO(Value Object) 라는 표현도 많이 쓰는데 VO 는 Immutable 특성을 가지고 있어서 DTO 와는 성질이 다르다. BoardDao 의 작성 1. DB테이블 작성 2. Mapper XML & DTO 작성 3. DAO 인터페이스 작성 4. DAO 인터페이스 구현 & 테스트(impl 먼저 작성하고 interface extract 해도 됨) mybatis-config.xml boardMapper.xml INSERT INTO board (title, content, writer) VALUES (#{title}, #{content}, #{writer}) SELECT bno, title, content,..
중고헌터- MyBatis 설정 및 게시판 만들기 준비
2022. 10. 1. 13:58
프로젝트/중고헌터
MyBatis SQL Mapping Framework - Easy & Simple 자바 코드에서 SQL 문을 분리해서 관리 매개 변수 설정과 쿼리 결과를 읽어오는 코드를 제거 작성할 코드를 줄어서 생산성 향상 & 유지 보수 편리 MVNRepository 가서 코드 가져오자 MyBatis, MyBatis Spring 둘 다 필요함 Spring 을 5.0 이상의 버젼을 쓸 때 MyBatis 3.5 버젼 이상 MyBatis Spring 2.0 버젼 이상 써야 함 설정 root-context.xml 코드 추가 pom.xml 코드 추가 org.mybatis mybatis 3.5.9 org.mybatis mybatis-spring 2.0.7 mybatis-config.xml 추가 src / main / resour..
중고헌터 - DAO(Data Access Object) 작성 2
2022. 9. 29. 08:48
프로젝트/중고헌터
DAO 를 추가하고 톰캣을 실행해서 잘 작동하는 지 확인해 보자 회원가입 먼저 테스트 RegisterController.java package com.jcy.usedhunter; import java.text.SimpleDateFormat; import java.util.Date; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.ui..
중고헌터 - 데이터 변환과 검증 2
2022. 9. 28. 09:30
프로젝트/중고헌터
Validator 객체를 검증하기 위한 인터페이스. 객체 검증기(validator) 구현에 사용 수동 검증 UserValidator.java package com.jcy.usedhunter; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; public class UserValidator implements Validator{ @Override public boolean supports(Class clazz) { // TODO Auto-generated method stub return U..
중고헌터 - 데이터 변환과 검증
2022. 9. 28. 09:22
프로젝트/중고헌터
Date 를 원하는 형식을 변경 String birth 를 Data 타입으로 변경 User.java package com.jcy.usedhunter; import java.util.Date; public class User { private String id; private String pwd; private String name; private String email; private Date birth; private String sns; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPwd() { return pwd; } public void setPwd(String ..
중고헌터 - DAO(Data Access Object) 작성
2022. 9. 27. 22:51
프로젝트/중고헌터
DAO(Data Access Object) 데이터(Data) 에 접근(Access) 하기 위한 객체(Object)로 Database 에 저장된 데이터를 읽기, 쓰기, 삭제, 변경을 수행한다.(CRUD) DB테이블당 하나의 DAO를 작성 계층의 분리 UserDao.java package com.jcy.usedhunter.dao; import com.jcy.usedhunter.domain.User; public interface UserDao { int deleteUser(String id); User selectUser(String id); // 사용자 정보를 user_info테이블에 저장하는 메서드 int insertUser(User user); // 매개변수로 받은 사용자 정보로 user_info테이블..
중고헌터 - TDD(Test-Driven-Development)
2022. 9. 27. 09:00
프로젝트/중고헌터
테스트에 사용할 User 클래스 만들기 User.java package com.jcy.usedhunter.domain; import java.util.Date; import java.util.Objects; public class User { private String id; private String pwd; private String name; private String email; private Date birth; private String sns; private Date reg_date; public User(){} public User(String id, String pwd, String name, String email, Date birth, String sns, Date reg_date) ..
중고헌터 - STS, DB(MySQL ) 연결
2022. 9. 27. 02:03
프로젝트/중고헌터
DBConnectionTest.java 실행하면 아래에 오류가 발생한다. package com.jcy.usedhunter; import java.sql.*; public class DBConnectionTest { public static void main(String[] args) throws Exception { // 스키마의 이름(springbasic)이 다른 경우 알맞게 변경해야 함 String DB_URL = "jdbc:mysql://localhost:3301/springbasic?useUnicode=true&characterEncoding=utf8"; // DB의 userid와 pwd를 알맞게 변경해야 함 String DB_USER = "jcy"; String DB_PASSWORD = "dar..
중고헌터 - 로그인 페이지 만들기3
2022. 9. 21. 17:48
프로젝트/중고헌터
로그인 성공 시 전에 있었던 페이지로 이동 BoardController.java list 메서드 리턴 값에 request.getReqeustURL() 을 추가해 GET 방식으로 URL 값을 넘긴다 package com.jcy.usedhunter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Co..
중고헌터 - 로그인 페이지 만들기2
2022. 9. 20. 19:28
프로젝트/중고헌터
게시판 이용시 로그인 상태가 아니면 로그인 화면으로 이동 boardList.jsp 중고헌터 Home Board login Sign in This is BOARD This is BOARD This is BOARD This is BOARD This is BOARD BoardList.java package com.jcy.usedhunter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.spri..