JDBC 및 SQL 데이터베이스와 Java.time 객체 통합
이 문서에서는 JDBC(Java Database Connectivity)를 사용하여 java.time.LocalDate
객체를 SQL 데이터베이스와 원활하게 통합하는 방법을 보여줍니다.
JDBC 4.2 이상: 직접 상호 작용
최신 JDBC 드라이버(JDBC 4.2 이상)는 java.time
객체를 직접 지원합니다. H2 데이터베이스 드라이버와 같은 드라이버는 효율적인 데이터 전송을 위해 setObject
및 getObject
메서드를 활용합니다. LocalDate
을 삽입하려면 PreparedStatement.setObject
을 사용하여 적절한 객체 유형을 지정해야 합니다. 검색에서는 ResultSet.getObject
을 사용하며, 마찬가지로 향상된 유형 안전성을 위해 예상되는 반환 유형을 지정합니다.
비준수 JDBC 드라이버 처리
JDBC 4.2 규정을 준수하지 않는 구형 드라이버의 경우 레거시 java.sql
날짜-시간 클래스를 활용해야 합니다. LocalDate
을 사용하여 java.sql.Date
을 java.sql.Date.valueOf(myLocalDate)
로 변환합니다. 반대로 java.sql.Date
를 사용하여 검색된 LocalDate
을 다시 java.sql.Date.toLocalDate()
으로 변환합니다.
예시(H2 데이터베이스)
다음 예에서는 H2 데이터베이스를 사용하는 규정 준수 및 비준수 접근 방식을 모두 보여줍니다.
<code class="language-java">// JDBC 4.2 compliant approach LocalDate today = LocalDate.now(); preparedStatement.setObject(1, today.minusDays(1)); // Non-compliant approach java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate); preparedStatement.setDate(1, mySqlDate);</code>
java.time 프레임워크 활용
java.time
프레임워크(Java 8부터 사용 가능)는 레거시 날짜-시간 클래스를 대체합니다. 특히 JDBC 4.2 호환 드라이버의 경우 데이터베이스 상호 작용과 함께 java.time
개체를 직접 사용하는 것이 좋습니다. 많은 최신 JDBC 드라이버와 ORM(예: Hibernate 5.0)은 java.time
유형
주요 고려사항
java.time.LocalDate
은 SQL DATE
데이터 유형에 매핑됩니다.java.time
기능을 Java 6 및 7로 확장합니다.java.time
지원 기능이 내장되어 있습니다. ThreeTenABP는 이전 Android 버전에 맞게 ThreeTen-Backport를 채택했습니다.위 내용은 JDBC를 사용하여 SQL 데이터베이스에 Java.time 개체를 삽입하고 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!