Pengendalian Tarikh dalam JDBC: java.util.Date vs java.sql.Date
Dalam JDBC, pengendalian tarikh boleh mengelirukan kerana kepada kewujudan pelbagai kelas Tarikh. Artikel ini meneroka perbezaan utama antara java.util.Date dan java.sql.Date untuk membimbing pembangun tentang bila dan sebab untuk menggunakan setiap kelas.
java.util.Date
java.util.Date mewakili titik masa mutlak dalam milisaat sejak zaman itu. Ia sedar zon waktu, bermakna ia menggabungkan pengimbang zon waktu semasa apabila menukar milisaat kepada tarikh/masa setempat.
java.sql.Date
java. sql.Date mewakili nilai SQL DATE, yang hanya mengandungi maklumat tentang tahun, bulan dan hari. Ia bebas zon waktu, bermakna ia tidak terjejas oleh pengimbangan zon waktu semasa.
Yang Mana Satu Untuk Digunakan?
Pilihan antara java.util.Date dan java.sql.Date bergantung pada jenis data SQL medan yang sedang diakses. Jadual berikut meringkaskan kelas yang sesuai untuk digunakan bagi setiap jenis data SQL:
SQL Data Type | Java Class |
---|---|
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.util.Date or java.sql.Timestamp |
Untuk medan TIMESTAMP, kedua-dua java.util.Date dan java.sql.Timestamp boleh digunakan, tetapi java.sql.Timestamp memberikan ketepatan tambahan dengan menyokong nanosaat.
Mengelakkan Tarikh
Pengarang mengesyorkan agar tidak menggunakan mana-mana kelas Tarikh secara langsung dan sebaliknya mencadangkan untuk menyimpan tarikh dan masa sebagai nilai panjang biasa, mewakili bilangan milisaat atau nanosaat sejak zaman itu. Pendekatan ini mudah alih pangkalan data dan mengelakkan kerumitan JDBC/Java Date API.
Atas ialah kandungan terperinci 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!