>Java >java지도 시간 >잘못된 날짜 오류를 방지하기 위해 Java `PreparedStatement`에서 `setDate`를 올바르게 사용하는 방법은 무엇입니까?

잘못된 날짜 오류를 방지하기 위해 Java `PreparedStatement`에서 `setDate`를 올바르게 사용하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-06 05:51:10825검색

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

PreparedStatement에서 setDate 사용

코드에서 다음을 사용하여 데이터베이스의 DATE 열 값을 설정하려고 합니다. setDate() 메소드. 그러나 유효하지 않은 날짜인 0000-00-00 값으로 초기화된 java.sql.Date 객체를 전달하고 있습니다.

다음을 사용하여 DATE 열의 값을 설정하는 올바른 방법 setDate()는 올바른 날짜 값이 포함된 java.util.Date 객체를 전달하는 것입니다. 새로운 java.util.Date() 생성자를 사용하거나 java.util.Calendar 클래스에서 사용 가능한 많은 정적 팩토리 메소드 중 하나를 사용하여 java.util.Date 객체를 생성할 수 있습니다.

예를 들어, 다음 코드는 현재 날짜가 포함된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.