Posts DEVIL: mysql의 datatime 타입과 java.util.Date 클래스
Post
Cancel

DEVIL: mysql의 datatime 타입과 java.util.Date 클래스

문제

Article의 cdt 컬럼(datetime)에 해당하는 도메인 객체의 필드는 어떤 타입으로 지정해야 할까? 다시 말해, 컬럼의 타입이 datetime일 때는 해당 도메인 객체의 타입을 어떻게 지정하는 것이 좋을까? java.sql.Date 의 경우 시간 정보가 저장되지 않는다. Java.sql.Time의 경우 날짜 정보가 저장되지 않는다. java.lang.String 의 경우 잘못된 형식의 날짜 데이터가 들어갈 가능성이 있다.

해결방법

mysql의 datetime 타입에 해당하는 프로퍼티 타입은 java.sql.Date를 사용하면 된다. util 패키지의 Date 도 mybatis에 전달할 때 아무런 문제가 발생하지 않는다. 내부적으로 전달할 때는 toString() 한 값이 전달되는 것이 아니라 밀리초의 long 값으로 전달되기 때문이다. java.sql.Datejava.util.Date 은 내부적으로 시간을 가지고 있긴 하지만(결국 long값을 가지고 있으니까) 이를 사용하지 않는다. 따라서 날짜를 다룰 때만 사용하는 것이 좋다.

This post is licensed under CC BY 4.0 by the author.

학원 #85일차:서블릿 프로그래밍, WAS, JavaEE와 Servlet 컨테이너, Servlet 인터페이스의 Life-cycle 메서드

학원 #86일차:서블릿 프로그래밍, 프로젝트를 WAS 아키텍처로 전환

Loading comments from Disqus ...