ใน 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();
}
}
}
คำอธิบาย:
PreparedStatementป้องกัน SQL Injection และจัดการชนิดข้อมูลอัตโนมัติsetNull(1, java.sql.Types.DATE)- พารามิเตอร์ที่ 1, ชนิด DATE- MySQL จะเก็บค่า
NULLในคอลัมน์AdmissionDate
รูปแบบอื่นๆ ของ setNull:
setNull(1, Types.INTEGER)setNull(1, Types.VARCHAR)setNull(1, Types.TIMESTAMP)
หมายเหตุ: ต้อง import java.sql.Types และใช้ JDBC Driver ที่เข้ากันได้กับ MySQL Version