Rumah >Java >javaTutorial >Bagaimana untuk Memasukkan dan Mendapatkan Objek java.time.LocalDate dalam Pangkalan Data JDBC?

Bagaimana untuk Memasukkan dan Mendapatkan Objek java.time.LocalDate dalam Pangkalan Data JDBC?

Barbara Streisand
Barbara Streisandasal
2024-12-20 08:53:10208semak imbas

How to Insert and Retrieve java.time.LocalDate Objects in JDBC Databases?

Memasukkan & Mengambil Objek java.time.LocalDate ke/daripada Pangkalan Data SQL Seperti H2

Soalan: Cara mengendalikan jenis java.time seperti LocalDate melalui JDBC dengan pangkalan data SQL, seperti H2?

Pendekatan Warisan: Menggunakan PreparedStatement::setDate dan ResultSet::getDate berfungsi untuk jenis java.sql.Date yang sudah lapuk. Walau bagaimanapun, adalah lebih baik untuk mengelakkan kelas warisan bermasalah ini.

Pendekatan Moden: Terdapat dua laluan utama:

  1. JDBC 4.2 Pemandu Mematuhi: Jika pemandu JDBC menyokong JDBC 4.2 atau lebih baru, anda boleh terus bekerja dengan objek java.time. Pemacu ini mempunyai kaedah setObject dan getObject untuk penukaran jenis data.
  2. Pemacu Lama, Pra-JDBC 4.2: Untuk pemacu sebelum JDBC 4.2, tukar objek java.time kepada setara java.sql mereka buat sementara waktu dan sebaliknya. Gunakan kaedah penukaran baharu yang ditambahkan pada kelas lama.

Contoh Penggunaan Pemacu Mematuhi JDBC 4.2:

// Insert LocalDate as SQL DATE
preparedStatement.setObject(1, myLocalDate);

// Retrieve LocalDate from SQL DATE
LocalDate localDate = myResultSet.getObject("my_date_column", LocalDate.class);

Contoh Penggunaan Tidak Mematuhi Pemandu:

// Convert LocalDate to java.sql.Date for insertion
java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate);
preparedStatement.setDate(1, mySqlDate);

// Convert java.sql.Date to LocalDate after retrieval
LocalDate localDate = mySqlDate.toLocalDate();

Cadangan: Gunakan pendekatan yang mematuhi JDBC 4.2 apabila boleh. Ia lebih ringkas dan selamat jenis. Walau bagaimanapun, kaedah tidak patuh masih boleh digunakan untuk pemandu yang tidak menyokong JDBC 4.2.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan dan Mendapatkan Objek java.time.LocalDate dalam Pangkalan Data JDBC?. 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