ホームページ > Java > &#&チュートリアル > 無効な日付エラーを回避するために Java の「PreparedStatement」で「setDate」を正しく使用する方法

無効な日付エラーを回避するために Java の「PreparedStatement」で「setDate」を正しく使用する方法

Mary-Kate Olsen
リリース: 2024-12-06 05:51:10
オリジナル
833 人が閲覧しました

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

PreparedStatement で setDate を使用する

コードでは、 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート