コードでは、 setDate() メソッド。ただし、値 0000-00-00 で初期化された java.sql.Date オブジェクトを渡していますが、これは無効な日付です。
次を使用して DATE 列の値を設定する正しい方法setDate() は、正しい日付値を含む java.util.Date オブジェクトを渡します。 java.util.Date オブジェクトは、新しい java.util.Date() コンストラクターを使用するか、java.util.Calendar クラスで使用できる多くの静的ファクトリ メソッドの 1 つを使用して作成できます。
たとえば、次のようになります。次のコードは、現在の日付を含む java.util.Date オブジェクトを使用して DATE 列の値を設定する方法を示しています。
import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; public class SetDateExample { public static void main(String[] args) throws SQLException { // Create a connection to the database Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "user", "password"); // Create a prepared statement to insert a new row into the table String sql = "INSERT INTO my_table (name, date_column) VALUES (?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // Set the name and date_column values for the new row pstmt.setString(1, "John Doe"); pstmt.setDate(2, new Date(Calendar.getInstance().getTime().getTime())); // Execute the prepared statement pstmt.executeUpdate(); // Close the prepared statement and connection pstmt.close(); conn.close(); } }
を使用することもできます。 setString() メソッドを使用して DATE 列の値を設定しますが、最初に toString() メソッドを使用して java.util.Date オブジェクトを文字列に変換する必要があります。たとえば、次のコードは、setString() メソッドを使用して DATE 列の値を設定する方法を示しています。
import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; public class SetStringExample { public static void main(String[] args) throws SQLException { // Create a connection to the database Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "user", "password"); // Create a prepared statement to insert a new row into the table String sql = "INSERT INTO my_table (name, date_column) VALUES (?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // Set the name and date_column values for the new row pstmt.setString(1, "John Doe"); pstmt.setString(2, new Date(Calendar.getInstance().getTime().getTime()).toString()); // Execute the prepared statement pstmt.executeUpdate(); // Close the prepared statement and connection pstmt.close(); conn.close(); } }
以上が無効な日付エラーを回避するために Java の「PreparedStatement」で「setDate」を正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。