java.util.Date
dan java.sql.Date
Mengendalikan tarikh dalam JDBC boleh mengecewakan pembangun, terutamanya apabila berurusan dengan jenis tarikh yang berbeza dalam pangkalan data SQL. Artikel ini meneroka perbezaan antara java.util.Date
dan java.sql.Date
, menjelaskan tujuan penggunaannya dan menerangkan sebab memilih jenis yang betul adalah penting.
Pangkalan data biasanya menyokong tiga jenis medan masa tarikh utama: TARIKH, MASA dan STAMP MASA. Setiap jenis diwakili dalam JDBC oleh kelas yang sepadan, dan ketiga-tiga kelas melanjutkan java.util.Date
. Semantik mereka adalah seperti berikut:
java.sql.Date
Menyimpan tahun, bulan dan tarikh, mengabaikan jam, minit, saat dan milisaat. Ia tiada kaitan dengan zon waktu. java.sql.Time
Hanya menyimpan maklumat tentang jam, minit, saat dan milisaat. java.sql.Timestamp
mewakili cap masa dengan ketepatan yang boleh disesuaikan, termasuk nanosaat. Salah satu masalah yang paling biasa dalam JDBC ialah pengendalian jenis kurma ini yang tidak betul. Pembangun mungkin tersilap menganggap java.sql.Date
sebagai khusus zon waktu, atau menetapkan nilai java.sql.Time
tahun, bulan dan hari semasa.
Pilihan jenis tarikh bergantung pada jenis medan SQL yang sepadan dengannya. PreparedStatement
menyediakan penetap untuk ketiga-tiga jenis: setDate()
untuk java.sql.Date
, setTime()
untuk java.sql.Time
dan setTimestamp()
untuk java.sql.Timestamp
.
Walaupun java.util.Date
boleh digunakan sebagai parameter kepada setObject()
, adalah tidak bijak untuk bergantung pada pemacu JDBC untuk menukarnya kepada jenis yang betul. Penukaran yang salah boleh mengakibatkan kehilangan data atau ketidakkonsistenan.
Untuk mengelakkan kerumitan Java Date API, pertimbangkan untuk menyimpan komponen tarikh sebagai integer panjang mudah dan menukarnya kepada objek yang sesuai mengikut keperluan. Pendekatan ini menyediakan mudah alih dan membolehkan kawalan yang lebih besar ke atas format dan ketepatan data.
Atas ialah kandungan terperinci Pengendalian Tarikh JDBC Java: `java.util.Date` lwn. `java.sql.Date` – Mana Yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!