타입 세이프(Typesafe) 쿼리 정의하기
SQLDelight는 .sq 파일에 레이블(labeled)이 지정된 모든 SQL 문에 대해 타입 세이프 함수를 생성합니다.
sql
selectAll:
SELECT *
FROM hockeyPlayer;
insert:
INSERT INTO hockeyPlayer(player_number, full_name)
VALUES (?, ?);
insertFullPlayerObject:
INSERT INTO hockeyPlayer(player_number, full_name)
VALUES ?;레이블이 지정된 문이 포함된 각 .sq 파일에 대해 "Queries" 객체가 생성됩니다. 예를 들어, 위에서 보여준 Player.sq 파일에 대해 PlayerQueries 객체가 생성됩니다. 이 객체를 사용하여 실제 SQL 문을 실행하는 생성된 타입 세이프 함수를 호출할 수 있습니다.
kotlin
fun doDatabaseThings(driver: SqlDriver) {
val database = Database(driver)
val playerQueries: PlayerQueries = database.playerQueries
println(playerQueries.selectAll().AsList())
// [HockeyPlayer(15, "Ryan Getzlaf")]
playerQueries.insert(player_number = 10, full_name = "Corey Perry")
println(playerQueries.selectAll().AsList())
// [HockeyPlayer(15, "Ryan Getzlaf"), HockeyPlayer(10, "Corey Perry")]
val player = HockeyPlayer(10, "Ronald McDonald")
playerQueries.insertFullPlayerObject(player)
}이상입니다! 다른 기능에 대해서는 사이드바의 다른 페이지들을 참조해 주세요.
