Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Medan java.util.Date dengan betul ke dalam Pangkalan Data?

Bagaimana untuk Memasukkan Medan java.util.Date dengan betul ke dalam Pangkalan Data?

DDD
DDDasal
2025-01-06 10:59:42804semak imbas

How to Properly Insert java.util.Date Fields into a Database?

Memasukkan Medan java.util.Date ke dalam Pangkalan Data

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:

  1. Gunakan java.sql.PreparedStatement untuk melaksanakan pertanyaan SQL.
  2. Tukar java.util.Date contoh kepada java.sql.Date atau java.sql.Timestamp objek.
  3. Gunakan kaedah setDate() PreparedStatement untuk menetapkan nilai medan tarikh dengan objek yang ditukar.

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!

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