Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- MYSQL
- java jdbc utf8mb4 연결 오류
- fractional seconds
- getEntityGraph
- jdbc utf8mb4
- apatch poi
- 티스토리챌린지
- sendFractionalSeconds
- RootGraph
- 운영체제별 차이
- MSSQL
- NamedEntityGraph
- AuditingEntityListener
- https
- +9:00
- 버전 문자열 비교
- 오블완
- createEntityGraph
- mysql8업그레이드
- load order
- mysql equal null
- spring boot
- Protecle
- 1*1000
- mysql =
- jdbc characterencoding utf8mb4
- getDateCellValue
- mysql not equal null
- 운동해서 광명찾자
- yml
Archives
- Today
- Total
Hello
MySQL dependency 8.0.18 에서 8.2.0으로 업그레이드 시 만난 datetime 이슈 본문
728x90
MySQL JDBC 드라이버(Connector/J)의 의존성을 8.0.18에서 8.2.0으로 올린 뒤, 기존에 Timestamp를 사용하던 코드에서 아래 에러가 발생했습니다.
java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:310) ~[na:1.8.0_242]
at java.text.Format.format(Format.java:157) ~[na:1.8.0_242]
분명 SimpleDateFormat에 Timestamp는 잘 들어가는데, 갑자기 에러가?? 디버깅해보니 해당 컬럼에서 Timestamp가 아니라 LocalDateTime 객체가 반환되고 있었고, 이는 SimpleDateFormat이 지원하지 않아 SimpleDateFormat.format() 호출 시 문제가 발생한 것입니다.
DateTimeFormatter로 포맷팅 방식을 바꿔 문제를 해결했습니다.
몇 버전 부터 Timestamp -> LocalDateTime으로 바뀐지 원인을 추적해본 결과 Connector/J 8.0.23부터 DATETIME과 TIMESTAMP 컬럼에 대해 LocalDateTime을 기본 반환값으로 사용하는 것으로 변경되었음을 공식 릴리즈 노트를 통해 확인했습니다.
Also, with the implementation of the new mechanism, a getObject(columnIndex) call on a DATETIME column returns a LocalDateTime object now instead of a String. To receive a String like before, use getObject(columnIndex, String.class) instead.
->또한, 새로운 메커니즘이 적용됨에 따라, 이제 DATETIME 컬럼에 대해 getObject(columnIndex)를 호출하면 이전처럼 문자열이 아닌 LocalDateTime 객체가 반환됩니다. 이전처럼 문자열을 받으려면 getObject(columnIndex, String.class)를 사용해야 합니다.
참고 : https://dev.mysql.com/doc/relnotes/connector-j/en/news-8-0-23.html
728x90
'java' 카테고리의 다른 글
MySQL 5에서 8로 업그레이드 시 utf8mb4와 JDBC characterEncoding 옵션 설정 (0) | 2025.04.01 |
---|---|
[Stream] 그룹핑 후 정렬 처리 (0) | 2025.02.07 |
[Hibernate] Inheritance Mapping (0) | 2024.11.07 |
[Querydsl] Subquery 및 Result handling (0) | 2024.07.31 |
[JAVA] instanceof null 검사? (0) | 2024.04.29 |