집 >데이터 베이스 >MySQL 튜토리얼 >JDBC에서 '0000-00-00 00:00:00' DATETIME 값을 처리하는 방법은 무엇입니까?
JDBC에서 "0000-00-00 00:00:00" DATETIME 값 처리
다음을 사용하여 MySQL 데이터베이스에서 DATETIME 값을 검색하는 경우 JDBC의 경우 값이 준 널(quasi-null) 값으로 설정된 경우 예외가 발생할 수 있습니다. "0000-00-00 00:00:00". 이 문제는 원시 문자열을 얻으려는 의도에도 불구하고 resultset.getString("add_date")을 사용하여 값을 문자열로 검색하려고 할 때 발생합니다.
대체 해결 방법
이 문제의 해결 방법은 다음 SQL 쿼리를 사용하는 것입니다.
SELECT CAST(add_date AS CHAR) as add_date
이 쿼리는 DATETIME 값을 CHAR로 변환하여 문자열로 검색되도록 합니다. 그러나 추가 처리 요구 사항으로 인해 덜 최적의 솔루션으로 간주됩니다.
JDBC URL 구성
대체 접근 방식은 데이터 소스에서 JDBC URL을 직접 구성하는 것입니다. 구성:
jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
zeroDateTimeBehavior 속성을 ConvertToNull로 설정하면 예외를 발생시키는 대신 모두 0인 DATETIME 값을 NULL로 변환하는 JDBC 드라이버입니다.
소스 및 추가 옵션
공식 MySQL 매뉴얼에서는 다음 방법에 대한 자세한 정보를 제공합니다. 모두 0인 DATETIME 값을 처리합니다. 커넥터/J:
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html#property_zeroDateTimeBehavior
에 따르면 설명서에 따르면 Connector/J 버전 3.0.x는 기본적으로 모두 0인 DATETIME 값을 NULL로 변환했습니다. 그러나 버전 3.1에서는 기본 동작이 예외를 발생시키는 것으로 변경되었습니다. zeroDateTimeBehavior 속성을 사용하면 다음 옵션 중 하나를 지정하여 이 동작을 사용자 지정할 수 있습니다.
위 내용은 JDBC에서 '0000-00-00 00:00:00' DATETIME 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!