Dans votre code, vous essayez de définir la valeur d'une colonne DATE dans la base de données à l'aide de l'option Méthode setDate(). Cependant, vous transmettez un objet java.sql.Date qui a été initialisé avec la valeur 0000-00-00, ce qui est une date invalide.
La manière correcte de définir la valeur d'une colonne DATE en utilisant setDate() doit transmettre un objet java.util.Date qui contient la valeur de date correcte. Vous pouvez créer un objet java.util.Date à l'aide du nouveau constructeur java.util.Date() ou en utilisant l'une des nombreuses méthodes de fabrique statique disponibles dans la classe java.util.Calendar.
Par exemple, le code suivant montre comment définir la valeur d'une colonne DATE à l'aide d'un objet java.util.Date qui contient la date actuelle :
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(); } }
Vous pouvez également utiliser la méthode setString() pour définir la valeur d'une colonne DATE, mais vous devez d'abord convertir l'objet java.util.Date en chaîne à l'aide de la méthode toString(). Par exemple, le code suivant montre comment définir la valeur d'une colonne DATE à l'aide de la méthode setString() :
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(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!