분류 전체보기
(게시판에서 동작되는 SQL Query문) 조회수 증가
조회수 증가 -> 누군가 게시물을 조회할때마다 조회수가 1씩 늘어나야하기 떄문에 update 쿼리문을 사용해서 조회한 게시물의 조회수 데이터가 저장되어있는 view_cnt컬럼의 값에 1이 추가되도록 해 주었습니다. 1 2 3 4 5 6 update board set view_cnt = view_cnt + 1 where board_num = #{boardNum}; Colored by Color Scripter cs
(게시판에서 동작되는 SQL Query문) 게시물 등록,수정,삭제,조회
1. 게시물 등록 -> 사용자가 게시물을 등록할때 입력하게되는 값은 작성자,제목,내용이므로 BoardVO객체를 통해 데이터들을 전달받아 DB 테이블에 데이터를 저장해주는 명령어인 insert into 쿼리문을 사용해서 각각의 테이블 컬럼에 writer,title,content 값을 저장해 주었습니다. 1 2 3 4 insert into board(writer,title,content) values(#{writer},#{title},#{content}) Colored by Color Scripter cs 2. 게시물 수정 -> 위의 게시물 등록과 같이 사용자가 수정하게 될 값은 작성자,제목,내용 이므로 DB 테이블에 데이터를 수정해주는 명령어인 update 쿼리문을 사용해서 각각의 테이블 데이터를 수정해 ..
(게시판에서 동작되는 SQL Query문) 검색과 페이징이 포함된 게시물 리스트와 게시물수 조회
1. 전체 게시물 리스트 조회(검색과 페이징 포함) -> 사용자가 제목 또는 작성자 또는 내용 또는 제목+내용인 조건으로 검색하게 될텐데 조건이 달라질때마다 테이블조회 조건인 where절도 달라져야 하므로 동적SQL을 써주었습니다. like뒤에 concat('%',#{keyword},'%')을 사용한 이유는 like "%#{keyword}#%"로 써주게 되면 #{keyword}를 문자열로 인식하기 때문에 문자열을 연결시켜주는 명령어인 concat을 사용하여 주었습니다. 그리고 마지막에 limit절을 써준 이유는 예를 들어 게시물을 5개로 나눠서 순차적으로 조회한다고 가정하면 SQL Query문에서는 limit절을 limit 0,5 -> limit 5,5 -> limit 10,5 이런식으로 작성해주어야 하..
(Spring,JSP) JSP에서 날짜 값을 fmt태그를 사용해 포맷하는법
JSP파일에서 Controller에서 넘겨받은 날짜값을 출력하여보면 Thu Aug 19 09:19:06 KST 2021 이런식으로 날짜가 사용자 입장에서 알아보기 힘들게 출력이 됩니다. 이런식으로 출력되는 날짜를 보기 편하게 바꿀려면 날짜를 포맷하는 과정이 필요합니다. 그러면 그 과정에 대해서 한번 알아보도록 하겠습니다. 1. 먼저 날짜를 포맷하기위해 존재하는 JSTL fmt 라이브러리를 사용하기위해 JSP파일 상단에 아래의 코드를 추가하여줍니다. 1 cs 2. 아래의 코드와 같이 태그를 사용해서 표현하고 싶은 날짜 패턴을 pattern에 그리고 Controller에서 넘어온 날짜값을 value에 입력하여줍니다. 패턴의 형식은 아래 링크인 API문서에 자세히 기록되어있습니다. 링크:SimpleDateFo..
(8) Postman을 사용하여 자동로그인 구현 테스트 해보기
Postman을 사용해 REST API를 테스트 할수있는 환경을 구축하는 방법은 Spring설정 카테고리에 작성돼있습니다 링크: (Spring)Postman를 사용해서 구축한 REST API가 정상작동하는지 테스트 하는법 (tistory.com) (Spring)Postman를 사용해서 Spring으로 구축한 REST API가 정상작동하는지 테스트 하는 방법 1.아래 사이트에 접속 후 Postman다운로드 해줍니다. Download Postman | Get Started for Free Download Postman | Get Started for Free Try Postman for free! Join 17 million developers who rely on Postman.. kdyspring.tis..
(7 - 5)(자동로그인 구현) UserController 클래스에서 /loginCheck 와 /logout 매핑에 자동로그인 처리를 위한 코드추가
#UserController.java ->자동로그인(loginCookie) 만료시간은 3개월뒤로 설정하였습니다 //로그인구현 @PostMapping("/loginCheck") public String login(@RequestBody UserVO input , HttpSession session ,HttpServletResponse response) { BCryptPasswordEncoder encode = new BCryptPasswordEncoder(); System.out.println(input); String result = null; UserVO db = service.getUser(input.getId()); if(db != null) { if(encode.matches(input.getPa..
(7 - 4)(자동로그인 구현) ILoginService인터페이스와 LoginService클래스에 코드 추가
#ILoginService.java 1 2 3 4 5 //특정 회원의 세션아이디와 쿠키 유효기간을 저장 void autoLogin(String sessionId,Date limitDate,String id); //세션아이디로 회원조회 UserVO selectSession(String sessionId); cs #LoginService.java -> UserController에서 받은 세션 아이디값과 자동로그인 만료시간 그리고 회원의 아이디값을 받은 뒤 Map컬렉션을 사용해 데이터들을 묶어준다음 mapper에게 전달해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Override public void autoLogin(String sessionId,Date lim..
(7 - 4)(자동로그인 구현) IUserMapper인터페이스와 UserMapper.xml 파일에 코드 추가
# IUserMapper.java ->autoLogin 메서드에서 매개 값을 UserVO로 받지않고 Map으로 받는 이유는 사용자가 직접 세션 아이디값과 자동로그인 만료날짜를 보내주는 것이 아니기때문에 UserVO에는 sessionId값과 limitDate값이 들어있지 않을것입니다. 그렇기 때문에 개발자가 직접 두 값과 로그인한 회원의 아이디값을 LoginService에게 보내주어 map으로 묶어준뒤 mapper에게 전달해줘야 합니다. 1 2 3 4 5 6 //특정 회원의 세션아이디와 쿠키 유효기간을 저장 void autoLogin(Map map); //세션아이디로 회원조회 UserVO selectSession(String sessionId); Colored by Color Scripter cs #Use..
(7 - 3)(자동로그인 구현) UserVO클래스에 sessionId,limitDate ,autoLogin 필드 추가하기
login_user테이블에 session_id 와 limit_date컬럼을 추가하여 주었으므로 UserVO클래스에도 똑같이 필드를 추가하여 줍니다. 그리고 autoLogin은 사용자가 로그인을 할때 자동로그인 체크박스를 클릭했는지 안했는지에 대한 논리값입니다. #UsereVO.java package com.example.login.vo; import java.util.Date; public class UserVO { private String id; private String password; private String name; private Date joinDate; private boolean autoLogin; private String sessionId; private Date limitDate..
(7 - 2)(자동로그인 구현) login_user테이블에 session_id와 limit_date컬럼추가
1. 자동로그인을 클릭한 사용자의 세션아이디와 자동로그인 만료 날짜를 저장하기위해서 login_user테이블에 session_id 와 limit_date 컬럼을 추가하여 줍니다. 1 2 alter table login_user add column session_id varchar(100) not null default "none"; alter table login_user add column limit_date timestamp; cs 2.컬럼추가를 완료한 후 테이블 조회(select) 명령를 통해 컬럼이 정상적으로 추가되었는지 확인해봅니다. 1 2 3 select * from login_user; cs 3.정상적으로 컬럼이 추가된것을 확인할 수 있습니다.