[ Java / Database ] 최종 로그인 시간 기록하기
2024. 3. 19. 19:22ㆍ· LANGUAGE/└ Java
환경 : Sprint Tool Suite, DBeaver
[ 최종 로그인 시간 기록 및 갱신 ]
최종 로그인 시간을 기록(변경)하기 위해서는 데이터 베이스를 활용해야한다.
그래서 Dao 파일에 로그인 시각 변경을 위한 메소드를 만들고, sql문을 활용하게 된다.
- MemberDao.java
@Repository
public class MemberDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private MemberMapper mapper;
//최종 로그인 시각 변경(수정, Update)
public boolean updateMemberLogin(String memberId) {
String sql ="update member "
+ "set member_login=sysdate "
+ "where member_id = ?";
Object[] data = {memberId};
return jdbcTemplate.update(sql, data) > 0;
}
}
(+) sql문의 sysdate 기능을 활용하여 시스템 날짜를 찍는다
- memberController.java
@Controller
@RequestMapping("/member")
public class MemberController {
@Autowired
public MemberDao memberDao;
//실제 로그인
//- 아이디와 비밀번호 검사를 통과해야만 세션에 데이터를 추가한다
//- 사용자가 입력한 아이디를 추가한다
@GetMapping("/login")
public String login() {
return "/WEB-INF/views/member/login.jsp";
}
@PostMapping("/login")
public String login(@ModelAttribute MemberDto inputDto,
HttpSession session) {
//사용자가 입력한 아이디로 회원정보를 조회한다
MemberDto findDto = memberDao.selectOne(inputDto.getMemberId());
//로그인 가능 여부를 판정
boolean isValid = findDto != null && inputDto.getMemberPw().equals(findDto.getMemberPw());
//결과에 따라 다른 철
if(isValid) {
//세션에 데이터 추가
session.setAttribute("loginId", findDto.getMemberId());
//최종 로그인 시각 갱신★
memberDao.updateMemberLogin(findDto.getMemberId());
return "redirect:/";
} else { //로그인 실패
return "redirect:login?error";
}
}
//실제 로그아웃
// - 로그인 때 검사 했으므로 추가 검사는 불필요
// - 로그인 때 저장한 세션의 데이터만 삭제 처리
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("loginId");
return "redirect:/";
}
}
(+) 최종 로그인 시각 갱신★
memberDao.updateMemberLogin(findDto.getMemberId()); 이 코드가 갱신을 해주는 코드이다.
(+) 다른 코드에 대한 참고 : https://ggingggang05.tistory.com/123
- 출력결과
개인 공부 기록용입니다:)
728x90
'· LANGUAGE > └ Java' 카테고리의 다른 글
[ Java ] 스프링에서 이메일 보내기 (JavaMailSenderImpl / MimeMessage) (0) | 2024.06.19 |
---|---|
[ Java ] swagger(springdoc) 사용하기 (+예제 실습) (0) | 2024.05.12 |
새로고침해도 페이지 오류가 나지 않도록 하는 법 (redirect 사용해보기) (0) | 2024.02.29 |
[ Java ] TreeSet 기본 구조 이해 및 실습 (0) | 2024.02.16 |
[ Spring / Java ] DecimalFromat() 메서드 (0) | 2024.02.13 |