Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

INSERT java.sql.Date ที่เป็น NULL ลง MySQL ด้วย PreparedStatement setNull

ใน Java JDBC เมื่อต้องการ INSERT ค่า NULL ลงคอลัมน์ DATE ใน MySQL ให้ใช้ PreparedStatement.setNull(parameterIndex, java.sql.Types.DATE)

ตัวอย่างการสร้างตารางในฐานข้อมูล 'web'

mysql> create table DemoTable ( 
    AdmissionDate date ); 
Query OK, 0 rows affected (0.53 sec)

โค้ด Java สำหรับ INSERT NULL Date

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class InsertNullDateDemo {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement ps = null;
        try {
            con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/web?useSSL=false", 
                "root", "123456");
            String query = "INSERT INTO DemoTable(AdmissionDate) VALUES(?)";
            ps = con.prepareStatement(query);
            ps.setNull(1, java.sql.Types.DATE);
            ps.executeUpdate();
            System.out.println("check the table......");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

คำอธิบาย:

  1. PreparedStatement ป้องกัน SQL Injection และจัดการชนิดข้อมูลอัตโนมัติ
  2. setNull(1, java.sql.Types.DATE) - พารามิเตอร์ที่ 1, ชนิด DATE
  3. MySQL จะเก็บค่า NULL ในคอลัมน์ AdmissionDate

รูปแบบอื่นๆ ของ setNull:

  • setNull(1, Types.INTEGER)
  • setNull(1, Types.VARCHAR)
  • setNull(1, Types.TIMESTAMP)

หมายเหตุ: ต้อง import java.sql.Types และใช้ JDBC Driver ที่เข้ากันได้กับ MySQL Version