Skip to content

參數

綁定參數

.sq 檔案採用與 H2 完全相同的語法,包括綁定參數。 如果一個陳述式包含綁定參數,相關聯的方法將需要對應的參數。

類型推斷

SQLDelight 將會推斷執行時參數的正確類型和可為空性,包括自訂欄位類型。

sql
selectByNumber:
SELECT *
FROM hockeyPlayer
WHERE player_number = ?;
kotlin
val selectNumber10 = playerQueries.selectByNumber(player_number = 10)
println(selectNumber10.executeAsOne())
// 輸出 "Corey Perry"

具名參數

可以使用具名參數或索引參數。

sql
firstOrLastName:
SELECT *
FROM hockeyPlayer
WHERE full_name LIKE ('% ' || :name)
OR full_name LIKE (:name || ' %');
kotlin
playerQueries.firstOrLastName(name = "Ryan")

多值參數

值集合也可以作為參數傳遞。

sql
selectByNames:
SELECT *
FROM hockeyPlayer
WHERE full_name IN ?;
kotlin
playerQueries.selectByNames(listOf("Alec", "Jake", "Matt"))

插入

INSERT VALUES 參數可以綁定至表格的資料類別。

sql
insertPlayer:
INSERT INTO hockeyPlayer
VALUES ?;
kotlin
val rickardRakell = HockeyPlayer(
  full_name = "Rickard Rakell",
  number = 67
)
playerQueries.insertPlayer(rickardRakell)

輸入清理

SQLDelight 使用查詢佔位符將參數傳遞至查詢。參數輸入的實際清理是由每個各自平台和變體上的底層驅動程式實作完成。