Soalan:
Saya menghadapi ralat semasa cuba masukkan rekod dengan medan java.util.Date ke dalam pangkalan data. Ralat menyatakan bahawa "Sintaks perwakilan rentetan nilai datetime adalah tidak betul." Bagaimanakah saya boleh menyelesaikan isu ini?
Penyelesaian:
Untuk memasukkan medan java.util.Date ke dalam pangkalan data, anda harus terlebih dahulu mempertimbangkan untuk menggunakan Pemetaan Hubungan Objek ( ORM) seperti Hibernate kepada pertanyaan SQL abstrak. Walau bagaimanapun, jika ini tidak dapat dilaksanakan, anda boleh menggunakan langkah berikut:
Contoh:
java.util.Date myDate = new java.util.Date("10/10/2009"); java.sql.Date sqlDate = new java.sql.Date(myDate.getTime()); Connection conn = ...; // Obtain the database connection String sql = "INSERT INTO USERS (USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) VALUES (?, ?, ?, ?, ?);"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, userId); stmt.setString(2, myUser.GetFirstName()); stmt.setString(3, myUser.GetLastName()); stmt.setString(4, myUser.GetSex()); stmt.setDate(5, sqlDate); stmt.executeUpdate(); // Execute the SQL query
Pendekatan ini secara automatik melepaskan diri daripada rentetan dan menghalang kelemahan suntikan SQL.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Medan java.util.Date dengan betul ke dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!