jdbc
java.lang.IllegalArgumentException
java.util.Date 타입을 java.sql.Date 타입으로 변환하기 위해
SimpleFormat ("yy/mm/dd")형식으로 문자열 변환한 값을 valueOf(formatDate)로 작성하였음.
java.util.Date date = new java.util.Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yy/mm/dd");
String formatDate = dateFormat.format(date);
java.sql.Date enrollDate = java.sql.Date.valueOf(formatDate);
이 때, java.lang.IllegalArgumentException 메세지가 나온 이유??
java.sql.Date api의 valueOf() 메소드는 무조건 이 문자열의 값이 yyyy-mm-dd 형식이어야 함.
formatDate는 yy/mm/dd 형식으로 된 문자열이므로 에러 발생.
오류 화면
해결 방안
날짜 포맷없이 작성하니 java.util.Date타입의 date.getTime() 메소드를 사용함
오류는 해결되었고 insert 쿼리로 값 전달도 yy/mm/dd 형태로 저장되었음.
java.util.Date date = new java.util.Date();
java.sql.Date enrollDate = new java.sql.Date(date.getTime());
애초에 date 타입을 INSERT 하면 자동으로 yy/mm/dd로 저장되어서 날짜 포맷을 바꿀 필요가 없었던 것ㅠㅠ
당연히 SimpleDateFormat을 사용해야 하는 줄 알고 한 삽질 이었다.