진짜 개발자
본문 바로가기

FrameWork/Spring MVC

SpringMVC - Spring JDBC에서 Mysql에 날짜/시간 데이터 입력

728x90
Spring JDBC에서 Mysql 테이블에 날짜시간 형식으로 저장하기

간단히 Spring MVC를 통해 게시판을 만드는 도중 시간에 따라 조회수를 측정하여 인기게시글을 파악해야 하는 상황이 생겼었습니다. 때문에 Table의 primary key를 int형 데이터시간/날짜를 합성키로 사용하게 되었습니다. 이때 발생한 문제점들을 정리 및 공유하려고 합니다.

 

 

Spring JDBC에 시간/날짜 입력

1. Mysql 의 Date 형식

처음 테이블을 만들때 date의 형식으로 date를 사용했습니다.

 

당연하게도 테이블에 insert된 데이터를 확인해보니, 날짜 (yyyy-mm-dd) 형식으로만 데이터가 입력이 되어 있었습니다.

 

시간/날짜 형식으로 데이터를 입력하기 위해서는 datetime이라는 형식으로 컬럼의 타입을 지정해주어야 했습니다.

 

 

2. Spring JDBC의 Type

 

해결이 되었겠거니 하고 테이블을 두번 조회를 하는 순간 에러가 났습니다. 키가 중복이 된다는 군요?..

 

테이블의 데이터를 확인해보니, 시간 값이 제대로 입력이 안되어있었습니다.

 

검색한 결과 날짜/시간 형식으로 데이터를 입력하기 위해서는 Timestamp라는 형식으로 데이터를 입력해주어야 했습니다.

 

값을 담을 때에는 Timestamp의 static method인 valueOf()의 매개변수로 LocalDateTime을 넘겨주면 됩니다.

 

성공입니다.