Maison > Java > javaDidacticiel > Comment utiliser correctement « setDate » dans un « PreparedStatement » Java pour éviter les erreurs de date invalides ?

Comment utiliser correctement « setDate » dans un « PreparedStatement » Java pour éviter les erreurs de date invalides ?

Mary-Kate Olsen
Libérer: 2024-12-06 05:51:10
original
832 Les gens l'ont consulté

How to Correctly Use `setDate` in a Java `PreparedStatement` to Avoid Invalid Date Errors?

Utilisation de setDate dans PreparedStatement

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();
    }
}
Copier après la connexion

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();
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal