如何使用 JDBC 程式在行中設定/插入列的 null 值?
您可以在 SQL 中透過兩種方式向表中插入空值
直接將值“NULL”插入所需列,如下所示
Insert into SampleTable values (NULL);
使用“' '”作為空值
Insert into SampleTable values (NULL);
使用prepared statement物件向表插入資料時,可以使用PreparedStatement介面的setNull()方法向列設定空值。
pstmt.setNull(parameterIndex, sqlType);
示例
假設我們在資料庫中有一張名為cricketers_data的表,內容如下
+------------+------------+---------------+----------------+-------------+ | First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country | +------------+------------+---------------+----------------+-------------+ | Shikhar | Dhawan | 1981-12-05 | Delhi | India | | Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica | | Kumara | Sangakkara | 1977-10-27 | Matale | Srilanka | | Virat | Kohli | 1987-04-30 | Delhi | India | | Rohit | Sharma | 1987-04-30 | Nagpur | India | +------------+------------+---------------+----------------+-------------+
以下 JDBC 程式連線到資料庫並在其中插入新行,並將出生地設為 NULL。
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Types;
public class InsertingNull {
public static void main(String args[])throws Exception {
//Registering the Driver
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//Getting the connection
String mysqlUrl = "jdbc:mysql:///mydatabase";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Creating a Statement object
Statement stmt = con.createStatement();
//Inserting values to a table
String query = "INSERT INTO cricketers_data VALUES (?, ?, ?, ?, ?)";
//Creating a Prepared Statement object
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "Ravindra");
pstmt.setString(2, "Jadeja");
pstmt.setDate(3, new Date(597396086000L));
//Setting null value to a column
pstmt.setNull(4, Types.NULL);
pstmt.setString(5, "India");
pstmt.execute();
System.out.println("Record inserted");
}
}輸出
Connection established...... Record inserted......
如果您檢索cricketers_data表的內容,則會看到新插入的記錄為空值。
mysql> select * from cricketers_data; +------------+------------+---------------+----------------+-------------+ | First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country | +------------+------------+---------------+----------------+-------------+ | Shikhar | Dhawan | 1981-12-05 | Delhi | India | | Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica | | Lumara | Sangakkara | 1977-10-27 | Matale | Srilanka | | Virat | Kohli | 1987-04-30 | Delhi | India | | Rohit | Sharma | 1987-04-30 | Nagpur | India | | Ravindra | Jadeja | 1988-12-06 | NULL | India | +------------+------------+---------------+----------------+-------------+ 6 rows in set (0.00 sec)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP