implementation 'com.squareup.sqldelight:gradle-plugin:<version>'
sqldelight {
database {
packageName = "com.example.db"
name = "MyDatabase"
dialectPreset = DialectPreset.SQLITE
}
drivers = [
"com.example.db.MyDatabaseDriver"
]
}
sql
-- tables.sql
CREATE TABLE user (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
);
./gradlew generateSqlDelightInterface
// User.sq
package com.example.db;
import com.example.db.User;
public interface UserQueries {
long insert(String name, int age);
List<User> selectAll();
...
}
// UserMapper.kt
package com.example.db
import com.squareup.sqldelight.runtime.db.SqlDriver
class UserMapper(private val driver: SqlDriver) {
private val userQueries: UserQueries by lazy {
}
fun insertUser(name: String, age: Int) = userQueries.insert(name, age)
fun getAllUsers() = userQueries.selectAll()
...
}