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:
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!