IllegalArgumentException
로 setDate()
피하기하드코딩된 SQL 쿼리에서 매개변수화된 준비된 문으로 마이그레이션하면 코드 유지 관리성과 보안이 향상됩니다. 그러나 setDate()
을 사용하면 IllegalArgumentException
이 발생하는 경우가 있습니다. 이 가이드에서는 java.sql.Date
및 java.sql.Timestamp
을 사용한 솔루션을 보여줍니다.
DATE 열 처리
DATE
유형의 데이터베이스 열의 경우 다음 방법을 사용하여 날짜 매개변수를 올바르게 설정하세요.
문자열 사용: 'yyyy-MM-dd' 형식으로 날짜 문자열 제공:
<code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
java.util.Date 사용: java.util.Date
객체 변환:
<code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
현재 날짜 설정: 현재 날짜 삽입:
<code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>
TIMESTAMP 또는 DATETIME 열 처리
데이터베이스 열이 TIMESTAMP
또는 DATETIME
유형인 경우 다음 옵션과 함께 setTimestamp()
을 사용하세요.
문자열 사용: 'yyyy-MM-dd HH:mm:ss[.f...]' 형식으로 날짜 및 시간 문자열 제공:
<code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
java.util.Date 사용: java.util.Date
객체 변환:
<code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
현재 타임스탬프 설정: 현재 타임스탬프 삽입:
<code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>
이러한 지침을 따르면 IllegalArgumentException
을 피하면서 준비된 명령문에서 날짜 및 타임스탬프 매개변수를 안정적으로 설정할 수 있습니다. 데이터베이스 열의 데이터 유형에 따라 적절한 방법(setDate()
또는 setTimestamp()
)을 선택해야 합니다.
위 내용은 IllegalArgumentException을 피하기 위해 ReadyStatements에서 setDate()를 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!