簡體   English   中英

Java PreparedStatement設置NULL參數

[英]Java PreparedStatement setting NULL parameters

Java PreparedStatement允許您為給定參數設置值或將其設置為NULL

SELECT *
FROM ADDRESS
WHERE ADDRESS_LINE1 = ? 

因此我們可以編寫代碼來設置此參數:

 if (addressLine1 != null) {
      preparedStatement.setString(1, addressLine1);
    } else {
      preparedStatement.setNull(1, VARCHAR);
    }

但是,還聲明您永遠不要使用=運算符將值與null進行比較,而應將IS運算符實際用於null比較。

准備好的語句實際上是在這里的掩體下將IS的=運算符交換為IS還是只是仍使用=運算符插入的null? 如果是后者,那么什么時候使用它才有用呢?您實際上得到了預期的結果嗎?

我在下面的堆棧溢出問題的后面問這個

SQL為null和= null

不,准備好的語句不會將=換成IS 您的代碼對此負責。 就像您將負責使用字something = NULL而不是something IS NULL進行查詢一樣。

能夠將其設置為null的目的是用於例如update或insert語句,或者在您正確使用的情況下isis distinct from

它也用於空條件檢查,例如where ? is null or something = ? where ? is null or something = ?

String something = "xyz"; // or String something = null;
statement.setString(1, something);
statement.setString(2, something);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM