Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Menggunakan JDBC untuk Memasukkan dan Mengambil Objek Java.time dalam Pangkalan Data SQL?

Bagaimanakah Saya Menggunakan JDBC untuk Memasukkan dan Mengambil Objek Java.time dalam Pangkalan Data SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-22 01:26:09650semak imbas

How Do I Use JDBC to Insert and Retrieve Java.time Objects in an SQL Database?

Mengintegrasikan Objek Java.time dengan Pangkalan Data JDBC dan SQL

Artikel ini menunjukkan cara menyepadukan java.time.LocalDate objek dengan lancar dengan pangkalan data SQL menggunakan Java Database Connectivity (JDBC).

JDBC 4.2 dan Kemudian: Interaksi Langsung

Pemandu JDBC moden (JDBC 4.2 dan ke atas) menawarkan sokongan langsung untuk java.time objek. Pemacu seperti pemacu pangkalan data H2 menggunakan kaedah setObject dan getObject untuk pemindahan data yang cekap. Memasukkan LocalDate melibatkan penggunaan PreparedStatement.setObject, menentukan jenis objek yang sesuai. Retrieval menggunakan ResultSet.getObject, dengan cara yang sama menyatakan jenis pulangan yang dijangkakan untuk keselamatan jenis yang dipertingkatkan.

Mengendalikan Pemacu JDBC Tidak Mematuhi

Untuk pemandu lama yang tidak mematuhi JDBC 4.2, anda perlu memanfaatkan kelas java.sql tarikh-masa warisan. Tukar LocalDate kepada java.sql.Date menggunakan java.sql.Date.valueOf(myLocalDate). Sebaliknya, tukarkan java.sql.Date yang diambil kembali kepada LocalDate menggunakan java.sql.Date.toLocalDate().

Contoh Ilustrasi (Pangkalan Data H2)

Contoh berikut mempamerkan kedua-dua pendekatan patuh dan tidak patuh menggunakan pangkalan data 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>

Memanfaatkan Rangka Kerja java.time

Rangka kerja java.time (tersedia dari Java 8 dan seterusnya) menggantikan kelas tarikh-masa lama. Menggunakan objek java.time secara langsung dengan interaksi pangkalan data adalah disyorkan, terutamanya dengan pemacu yang mematuhi JDBC 4.2. Ambil perhatian bahawa banyak pemacu dan ORM JDBC moden (seperti Hibernate 5.0 ) menyediakan sokongan asli untuk jenis java.time.

Pertimbangan Utama

  • java.time.LocalDate memetakan kepada jenis data SQL DATE.
  • Pemacu JDBC tersedia daripada Oracle, vendor pangkalan data dan perpustakaan pihak ketiga.
  • Pustaka ThreeTen-Backport memanjangkan fungsi java.time ke Java 6 dan 7.
  • Android versi 26 dan lebih baru termasuk sokongan java.time terbina dalam; ThreeTenABP menyesuaikan ThreeTen-Backport untuk versi Android yang lebih awal.

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan JDBC untuk Memasukkan dan Mengambil Objek Java.time dalam Pangkalan Data SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn