Rumah > Java > javaTutorial > Bagaimana Menggunakan `setDate` dengan betul dalam Java `PreparedStatement` untuk Mengelakkan Ralat Tarikh Tidak Sah?

Bagaimana Menggunakan `setDate` dengan betul dalam Java `PreparedStatement` untuk Mengelakkan Ralat Tarikh Tidak Sah?

Mary-Kate Olsen
Lepaskan: 2024-12-06 05:51:10
asal
832 orang telah melayarinya

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

Menggunakan setDate dalam PreparedStatement

Dalam kod anda, anda cuba menetapkan nilai lajur DATE dalam pangkalan data menggunakan kaedah setDate(). Walau bagaimanapun, anda menghantar objek java.sql.Date yang telah dimulakan dengan nilai 0000-00-00, iaitu tarikh yang tidak sah.

Cara yang betul untuk menetapkan nilai lajur DATE menggunakan setDate() adalah untuk menghantar objek java.util.Date yang mengandungi nilai tarikh yang betul. Anda boleh mencipta objek java.util.Date menggunakan pembina java.util.Date() baharu atau dengan menggunakan salah satu daripada banyak kaedah kilang statik yang tersedia dalam kelas java.util.Calendar.

Sebagai contoh, kod berikut menunjukkan cara untuk menetapkan nilai lajur DATE menggunakan objek java.util.Date yang mengandungi tarikh semasa:

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();
    }
}
Salin selepas log masuk

Anda juga boleh menggunakan kaedah setString() untuk menetapkan nilai lajur DATE, tetapi anda mesti menukar objek java.util.Date kepada rentetan menggunakan kaedah toString() dahulu. Sebagai contoh, kod berikut menunjukkan cara untuk menetapkan nilai lajur DATE menggunakan kaedah 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();
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Menggunakan `setDate` dengan betul dalam Java `PreparedStatement` untuk Mengelakkan Ralat Tarikh Tidak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan